Отслеживание источника прерываний - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть платформа на базе Xeon-D, на которой работает CentOS 7.3 (ядро Linux 3.10.0-862), и я заметил много необработанных прерываний, приходящих на определенный IRQ (IRQ # 18).По всей видимости, линия IRQ совместно используется хост-контроллером USB и драйвером SMBus, однако прерывания продолжают поступать даже после отключения всех портов USB в BIOS и выгрузки модуля i2c-i801 (по одному для сохранения ядром прослушивания IRQ).линия).Поэтому я затрудняюсь отследить, откуда поступают эти прерывания, если не от USB или I2C.

В конце концов, все становится настолько плохо, что ядро ​​просто отключает IRQ ( irq 18: никто не заботился ... ), заставляя вещи перестать работать на кого-то.Единственный способ сохранить это - использовать параметр noirqdebug в моей загрузочной командной строке ядра.

Я наблюдал ту же проблему при запуске Ubuntu 18.04 с более новым ядром.

У меня есть следующие вопросы:

  • Как назначаются номера IRQ на уровне ядра и устройства?

  • Возможно ли, чточто-то не на USB или SMBus может отправлять прерывания на IRQ # 18?

  • Как можно отследить источник этих прерываний?

и, наконец,

  • Как это исправить?: -)

Буду признателен за любые предложения или указания, и я буду рад предоставить любую информацию, которую я мог пропустить.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...