Может ли strace повлиять на ход выполнения программы, которая запущена под ним? У меня какой-то глюк, что программа, запущенная под strace-ом, быстрее выходит из select-а (на два сокета), чем сама по себе. Ядро Линукс нестандартное, оно почему-то тормозит в select-e, но протрейсить я это не могу. Стоит только запустить сервер под strace, как сразу все тормоза исчезают (причем существенные).Что это может быть? Каким образом strace модифицирует системный вызов? Советы типа "пить надо меньше" с негодованием отметаю.
Спасибо.
выходит из select по таймауту или по получении данных?при использовании strace изменяеся тайминг выполнения программы.
код программы и библиотек не меняется,
>выходит из select по таймауту или по получении данных?
>
>при использовании strace изменяеся тайминг выполнения программы.
>код программы и библиотек не меняется,Таймаут там NULL, т.е. бесконечный. Так что выходит он из select-а по получению данных. Я допускаю, что тормоза могут быть связаны с ошибками в ядре, так что select не может сразу проснуться при получении данных и какое-то время просто висит. Но что меняется при запуске под strace-ом, что вдруг неожиданно тормоза пропадают?
можно ещё попробовать вставить printk в код select-а.
>можно ещё попробовать вставить printk в код select-а.Пожалуй, единственный реально рабочий вариант (кроме разве что ещё запуска ядра в отладке, но это IMHO вообще шаманство)
>[оверквотинг удален]
>У меня какой-то глюк, что программа, запущенная под strace-ом, быстрее выходит
>из select-а (на два сокета), чем сама по себе. Ядро Линукс
>нестандартное, оно почему-то тормозит в select-e, но протрейсить я это не
>могу. Стоит только запустить сервер под strace, как сразу все тормоза
>исчезают (причем существенные).
>
>Что это может быть? Каким образом strace модифицирует системный вызов? Советы типа
>"пить надо меньше" с негодованием отметаю.
>
>Спасибо.Будете смеяться, но оказалось, что это хардварная проблема. Смена сетевой карточки и драйвера эту проблему решила - все лаги неожиданно пропали.
"Загадка подобная Бермудскому треугольнику"
>Будете смеяться, но оказалось, что это хардварная проблема. Смена сетевой карточки и
>драйвера эту проблему решила - все лаги неожиданно пропали.
>
>"Загадка подобная Бермудскому треугольнику"Может, и не хардверная. Бывают ещё глюкавые драйверы.