все знают, что обработчик прерываний должен быть как можно короче. и добавление функций типа printk
для отладки внутри обработчика прерываний - это то, чего не следует делать.
На самом деле, я пробовал это раньше, когда отлаживал ядро linux для написанного мной устройства char, управляемого прерыванием, и это разрушило тайминг драйвера.
Вопрос, который у меня возник, почему это происходит?
функция printk
является буферизованной! Это означает, насколько я понимаю, что данные вставляются в очередь, и обрабатываются позже, скорее всего, после завершения обработчика прерывания.
Так почему же это не работает?