LINUX.ORG.RU
решено ФорумAdmin

Переход в поллинг сетевой карты со снижением скорости


0

1

У меня периодически в логе kern.log появляется следующая последовательность записей, после чего интернет становится существенно медленней. При этом помогает выполнение команды /etc/init.d/networking restart. Такое случается, предположительно, когда у прова появляются проблемы с инетом.

Nov  6 03:29:56 anime kernel: [292873.739991] irq 19: nobody cared (try booting with the "irqpoll" option)
Nov  6 03:29:56 anime kernel: [292873.739998] Pid: 0, comm: swapper Tainted: G         C  3.0.0-12-server #20-Ubuntu
Nov  6 03:29:56 anime kernel: [292873.740001] Call Trace:
Nov  6 03:29:56 anime kernel: [292873.740003]  <IRQ>  [<ffffffff810cef3d>] __report_bad_irq+0x3d/0xe0
Nov  6 03:29:56 anime kernel: [292873.740014]  [<ffffffff810cf365>] note_interrupt+0x135/0x180
Nov  6 03:29:56 anime kernel: [292873.740018]  [<ffffffff810cd369>] handle_irq_event_percpu+0xa9/0x220
Nov  6 03:29:56 anime kernel: [292873.740022]  [<ffffffff810cd52e>] handle_irq_event+0x4e/0x80
Nov  6 03:29:56 anime kernel: [292873.740026]  [<ffffffff810cfc94>] handle_fasteoi_irq+0x64/0xf0
Nov  6 03:29:56 anime kernel: [292873.740030]  [<ffffffff8100c212>] handle_irq+0x22/0x40
Nov  6 03:29:56 anime kernel: [292873.740034]  [<ffffffff8160866a>] do_IRQ+0x5a/0xe0
Nov  6 03:29:56 anime kernel: [292873.740039]  [<ffffffff815fed53>] common_interrupt+0x13/0x13
Nov  6 03:29:56 anime kernel: [292873.740041]  <EOI>  [<ffffffff81347e7b>] ? intel_idle+0xcb/0x120
Nov  6 03:29:56 anime kernel: [292873.740051]  [<ffffffff81347e5d>] ? intel_idle+0xad/0x120
Nov  6 03:29:56 anime kernel: [292873.740057]  [<ffffffff814bcba2>] cpuidle_idle_call+0xa2/0x1d0
Nov  6 03:29:56 anime kernel: [292873.740062]  [<ffffffff8100920b>] cpu_idle+0xab/0x100
Nov  6 03:29:56 anime kernel: [292873.740066]  [<ffffffff815c8c0e>] rest_init+0x72/0x74
Nov  6 03:29:56 anime kernel: [292873.740072]  [<ffffffff81ce6c2b>] start_kernel+0x3d4/0x3df
Nov  6 03:29:56 anime kernel: [292873.740076]  [<ffffffff81ce6388>] x86_64_start_reservations+0x132/0x136
Nov  6 03:29:56 anime kernel: [292873.740080]  [<ffffffff81ce6140>] ? early_idt_handlers+0x140/0x140
Nov  6 03:29:56 anime kernel: [292873.740084]  [<ffffffff81ce6459>] x86_64_start_kernel+0xcd/0xdc
Nov  6 03:29:56 anime kernel: [292873.740087] handlers:
Nov  6 03:29:56 anime kernel: [292873.740097] [<ffffffffa008af40>] ahci_interrupt
Nov  6 03:29:56 anime kernel: [292873.740102] [<ffffffffa009a3f0>] rtl8139_interrupt
Nov  6 03:29:56 anime kernel: [292873.740104] Disabling IRQ #19

На 19-м прерывании сидит сетевушка, подключённая к провайдеру. Как я понимаю, отключается обработка прерывания с переходом в режим полинга, при вызове сетевушкой некоторого прерывания, которое драйвер сетевушки не признаёт. В результате резко снижается производительность сети. Вопрос в том, что тут можно сделать? Можно ли сделать, чтобы при наступлении такого события обработка данного прерывания не прекращалась? Буду рад любым соображениям по данному вопросу.

Ответ на: комментарий от Pinkbyte

Нет. Почему-то мне не кажется хорошей идеей переводить обработку всех прерываний в режим полинга. Ведь именно это делает данная опция?

Mironov
() автор топика

У меня такое было на старых ядрах (ну, скажем, двухгодичной давности) и проблема была с жестким диском.
Решилась либо обновлением ядра, либо после того как я заменил SATA шнурок; что именно из этого помогло - не скажу.
Проверь `cat /proc/interrupts`

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

На 19-том прерывании у меня вот что сидит:

19: 615400435 0 0 0 0 0 0 0 IO-APIC-fasteoi ahci, eth0

Но проблема точно с сетевухой, а не с контроллером винтом, так как замечено, что прерывание дисабится в момент проблем с инетом у провайдера. В поллинг переводить очень не хочется, так как внутренний интерфейс eth1 - гигабитный, и с ним проблем нет. Хотелось бы какое-то решение, которое позволяло бы не блокировать обработку последующих прерываний после того, которое никем не обработано.

Алсо, ядро у меня новое: Linux 3.0.0-12.

Mironov
() автор топика
Ответ на: комментарий от ventilator

То есть ты предлагаешь заменить сетевуху? А на какую? И чем плох реалтек? Может просто драйвер под линукс кривоват?

Mironov
() автор топика
Ответ на: комментарий от Mironov

Было у меня такое недавно. Сетевая на r8139 после перехода на linux-3.0 начала себя плохо вести, отваливаясь в среднем раз в 5 дней. С одним лишь отличием: производительность сети не резко снижалась, а падала до нуля с переходом линка на 10Mbps. Скурил мегабайты гуглового выхлопа, в результате поменял сетевую на

06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
        Subsystem: ASUSTeK Computer Inc. Device 8432
        Kernel driver in use: r8169
up 31 days, 9:46, полёт нормальный.

NightSpamer
()
Ответ на: комментарий от Mironov

Нормально работают:
intel e100/e1000/e1000e/igb/
broadcom netxtreme2

Реалтек всегда был глючным поделием, повезет - работает нормально.

ventilator ★★★
()
Ответ на: комментарий от ventilator

Спасибо всем ответившим. Буду покупать новую сетевую.

Mironov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.