Disabling IRQ #16

С недавних пор, а точнее с момента перехода на ядро 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.
Кто может помочь, помогите..

.

Vaka написал(а):
помогите

В качестве маловероятной "соломинки", поиграйте опциями ядра 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 ..
добился только чтобы все устройства сели на одно прерывание, но это не спасает ..

.

Vaka написал(а):
CONFIG_IRQ_REMAP только в 3.2 и в x64
ноут не 64-битный

Жаль, ведь похоже - как раз оно-то вам и надо...

Цитата:
добился только чтобы все устройства сели на одно прерывание

Не факт, что это хорошо - может, попробовать наоборот, каждому дивайсу - своё прерывание?

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Не факт, что это хорошо -

Не факт, что это хорошо - может, попробовать наоборот, каждому дивайсу - своё прерывание?

в этом то и проблема.. линукс не позволяет вручную расставить прерывания..

.

Vaka написал(а):
в этом то и проблема

Не скромничайте: "...залез в исходники ядра, руками добился чтобы i915 и ath висели на разных IRQ..." :-)
Посмотрите здесь - не совсем вчера, но схожие вопросы люди обсуждли...
И да, что ж совсем на IRQ буксовать-то, ACPI и APIC тоже подсистемы не совсем посторонние...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Для чистоты эксперимента,

Для чистоты эксперимента, после того как поигрался разными параметрами из .config | grep IRQ и не получив удовлетворительного решения сменил мать на предыдущую (MSI PH67S-C43 <=-=> ASUS P5Q). Поставил заново систему с тем же .config. Три дня стабильной работы.

ЗЫ. Конечно при такой гонке за скоростями и производительностью девелоперам из kernel.org сложно угнаться за всеми и предусмотреть все возможные варианта, но ведь и производители материнок могут накосячить. В общем вернулся на MSI и жду новой версии ядра.

Правильно заданный вопрос - половина ответа!
Логики и довода — недостаточно. Надо еще зачморить тех, кто думает не так как мы. (South Park)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".