моя команда пишет программное обеспечение, взаимодействующее с модулем ядра Linux. Мы пишем в sysfs для управления модулем. Недавно мы столкнулись с проблемой, из-за которой модуль иногда не работает должным образом.
Один из моих коллег заметил, что если мы поместим sleep
между
Последующие записи в sysfs, проблема не возникает. Это , вероятно, означает, что после первой записи модулю требуется некоторое время, чтобы выполнить некоторую дополнительную обработку, и наш код должен подождать, пока это будет сделано, прежде чем выполнять вторую запись.
Я действительно не хочу вставлять случайный код sleep
. Однако у нас практически нет опыта работы с пространством ядра. Есть ли способ обнаружить, что модуль ядра занят выполнением дополнительной обработки? Отслеживать активность модуля? Особенно программным способом, который мы могли бы использовать вместо sleep
-на некотором предопределенном интервале?
К сожалению, мой NDA не позволяет мне вдаваться в подробности о том, с каким модулем и какими файлами sysfs мы взаимодействуем.