Disabling IRQ #16
LinuxID 9 января, 2012 - 04:34
С недавних пор, а точнее с момента перехода на ядро 3.1.6 в dmesg начали появляться сообщения
[ 7039.275476] irq 16: nobody cared (try booting with the "irqpoll" option) [ 7039.275479] Pid: 0, comm: swapper Not tainted 3.1.6-gentoo #2 [ 7039.275480] Call Trace: [ 7039.275481] <IRQ> [<ffffffff81085a29>] __report_bad_irq+0x2e/0xc1 [ 7039.275488] [<ffffffff81085d48>] note_interrupt+0x165/0x1e1 [ 7039.275490] [<ffffffff810843cb>] handle_irq_event_percpu+0x157/0x199 [ 7039.275492] [<ffffffff81084440>] handle_irq_event+0x33/0x4f [ 7039.275494] [<ffffffff8108646b>] handle_fasteoi_irq+0x75/0x9a [ 7039.275496] [<ffffffff810039e7>] handle_irq+0x83/0x8b [ 7039.275498] [<ffffffff810036af>] do_IRQ+0x48/0xa0 [ 7039.275500] [<ffffffff814eb0ab>] common_interrupt+0x6b/0x6b [ 7039.275501] <EOI> [<ffffffff8126355c>] ? acpi_idle_enter_bm+0x202/0x236 [ 7039.275505] [<ffffffff81263557>] ? acpi_idle_enter_bm+0x1fd/0x236 [ 7039.275508] [<ffffffff813b5b06>] cpuidle_idle_call+0xe1/0x17d [ 7039.275510] [<ffffffff81001257>] cpu_idle+0x55/0x81 [ 7039.275513] [<ffffffff814d6069>] rest_init+0x6d/0x6f [ 7039.275515] [<ffffffff81ad4a46>] start_kernel+0x2db/0x2e6 [ 7039.275517] [<ffffffff81ad4270>] x86_64_start_reservations+0x80/0x84 [ 7039.275519] [<ffffffff81ad4366>] x86_64_start_kernel+0xf2/0xf9 [ 7039.275520] handlers: [ 7039.275523] [<ffffffff81291c6f>] nouveau_irq_handler [ 7039.275525] [<ffffffff813428af>] usb_hcd_irq [ 7039.275528] [<ffffffff81420747>] azx_interrupt [ 7039.275530] [<ffffffff81333486>] rtl8139_interrupt [ 7039.275531] Disabling IRQ #16
В результате чего Х`ы грузят проц примерно на 25%, мышь скачет по экрану а клавиши очень долго отвечают.
Данный ужас появляется достаточно часто, но не регулярно. При работе без Х`ов происходит тоже самое.
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3 0: 35 0 0 0 IO-APIC-edge timer 1: 2 0 0 0 IO-APIC-edge i8042 8: 64 0 0 0 IO-APIC-edge rtc0 9: 0 0 0 0 IO-APIC-fasteoi acpi 12: 3 0 0 0 IO-APIC-edge i8042 14: 11486 0 0 0 IO-APIC-edge ata_piix 15: 364 0 0 0 IO-APIC-edge ata_piix 16: 39392 0 0 0 IO-APIC-fasteoi nouveau, ehci_hcd:usb1, snd_hda_intel, eth0 18: 2 0 0 0 IO-APIC-fasteoi eth1 19: 14225 0 0 0 IO-APIC-fasteoi ata_piix 22: 1578 0 0 0 IO-APIC-fasteoi snd_hda_intel 23: 60 0 0 0 IO-APIC-fasteoi ehci_hcd:usb2 NMI: 0 0 0 0 Non-maskable interrupts LOC: 176008 269269 51223 19281 Local timer interrupts SPU: 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 Performance monitoring interrupts IWI: 0 0 0 0 IRQ work interrupts RES: 219911 230407 38542 28113 Rescheduling interrupts CAL: 247 882 1241 2474 Function call interrupts TLB: 1173 1172 1050 1892 TLB shootdowns TRM: 0 0 0 0 Thermal event interrupts THR: 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 Machine check exceptions MCP: 10 10 10 10 Machine check polls ERR: 0 MIS: 0
cat /usr/rsc/linux/.config | grep POOL
CONFIG_EPOLL=y # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_INPUT_POLLDEV is not set
cat /usr/rsc/linux/.config | grep IRQ
CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y CONFIG_HAVE_GENERIC_HARDIRQS=y # IRQ subsystem CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_INLINE_SPIN_LOCK_IRQ is not set # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set CONFIG_INLINE_SPIN_UNLOCK_IRQ=y # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_READ_LOCK_IRQ is not set # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_WRITE_LOCK_IRQ is not set # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set # CONFIG_IRQ_TIME_ACCOUNTING is not set CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_HT_IRQ=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_IRQSOFF_TRACER is not set
»
- Для комментирования войдите или зарегистрируйтесь
у меня на ноуте на 16 irq
у меня на ноуте
на 16 irq висят i915, ath, usb
такая же ошибка при пользовании или даже не пользовании wifi.
от ядра не зависит, пробовал и 3.2 и 2.6.28
сам исправлял и патчил DSDT.
курил тему неделю.. залез в исходники ядра, руками добился чтобы i915 и ath висели на разных IRQ, но ничего не помогло..
но, что интересно, под виндой, они сидят на тех же irq, но при этом всё работает стабильно.
Можно передать ядру параметр
Можно передать ядру параметр irqpoll, что, кстати, предложено, но это не правильный вариант, хотя и решает проблему, у вас, видимо, нет прошивки для чего-либо. И у ТС тоже.
irqpoll ничего не меняет -
irqpoll ничего не меняет - система все равно тормозит или отваливается wifi.
для Atheros AR5BXB61 нужна прошивка?
причем Disabling 16 возникает и на драйвере из ядра и на драйвере mad wi-fi.
Кто может помочь, помогите..
.
В качестве маловероятной "соломинки", поиграйте опциями ядра CONFIG_HT_IRQ, CONFIG_IRQ_TIME_ACCOUNTING, но вот главной - CONFIG_IRQ_REMAP, почему-то не вижу в вашем "grep IRQ"
Мы тоже не всего читали Шнитке!.. © В. Вишневский
CONFIG_IRQ_REMAP только в 3.2
CONFIG_IRQ_REMAP только в 3.2 и в x64 описание
ноут не 64-битный.. на pentium-m
включал и выключал все опции в названии которых есть IRQ ..
читал make help | grep irq ..
добился только чтобы все устройства сели на одно прерывание, но это не спасает ..
.
Жаль, ведь похоже - как раз оно-то вам и надо...
Не факт, что это хорошо - может, попробовать наоборот, каждому дивайсу - своё прерывание?
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Не факт, что это хорошо -
Не факт, что это хорошо - может, попробовать наоборот, каждому дивайсу - своё прерывание?
в этом то и проблема.. линукс не позволяет вручную расставить прерывания..
.
Не скромничайте: "...залез в исходники ядра, руками добился чтобы i915 и ath висели на разных IRQ..." :-)
Посмотрите здесь - не совсем вчера, но схожие вопросы люди обсуждли...
И да, что ж совсем на IRQ буксовать-то, ACPI и APIC тоже подсистемы не совсем посторонние...
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Для чистоты эксперимента,
Для чистоты эксперимента, после того как поигрался разными параметрами из .config | grep IRQ и не получив удовлетворительного решения сменил мать на предыдущую (MSI PH67S-C43 <=-=> ASUS P5Q). Поставил заново систему с тем же .config. Три дня стабильной работы.
ЗЫ. Конечно при такой гонке за скоростями и производительностью девелоперам из kernel.org сложно угнаться за всеми и предусмотреть все возможные варианта, но ведь и производители материнок могут накосячить. В общем вернулся на MSI и жду новой версии ядра.
Правильно заданный вопрос - половина ответа!
Логики и довода — недостаточно. Надо еще зачморить тех, кто думает не так как мы. (South Park)