У меня есть платформа на базе 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?
Как можно отследить источник этих прерываний?
и, наконец,
Буду признателен за любые предложения или указания, и я буду рад предоставить любую информацию, которую я мог пропустить.Заранее спасибо.