LINUX.ORG.RU

Странные глюки с Intel 82546EB


0

1

Собсно двухпортовый сабж, само по себе вроде PCI-X, вставлен в PCI разъем на Supermicro X9SCi-LN4F. Ядро 3.0.32, драйвер e1000 её определяет.

08:00.0 Ethernet controller: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) (rev 03)
08:00.1 Ethernet controller: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) (rev 03)

При загрузке имеем такой вот высер:

[   87.148614] irq 21: nobody cared (try booting with the "irqpoll" option)
[   87.148663] Pid: 1506, comm: which Not tainted 3.0.32-VMSTOR2-SCST-2.2-REV4314 #1
[   87.148725] Call Trace:
[   87.148764]  <IRQ>  [<ffffffff81079e2f>] ? __report_bad_irq+0x2f/0xd0
[   87.148839]  [<ffffffff8107a034>] ? note_interrupt+0x164/0x210
[   87.148890]  [<ffffffff81182ead>] ? blk_done_softirq+0x6d/0x80
[   87.148937]  [<ffffffff8107808a>] ? handle_irq_event_percpu+0x7a/0x140
[   87.148986]  [<ffffffff81078183>] ? handle_irq_event+0x33/0x60
[   87.149036]  [<ffffffff8107a669>] ? handle_fasteoi_irq+0x49/0xe0
[   87.149085]  [<ffffffff81003ec5>] ? handle_irq+0x15/0x20
[   87.149131]  [<ffffffff81003693>] ? do_IRQ+0x53/0xd0
[   87.149179]  [<ffffffff813dfa53>] ? common_interrupt+0x13/0x13
[   87.149227]  <EOI>  [<ffffffff81088e01>] ? find_get_page+0x31/0x90
[   87.149303]  [<ffffffff81088de8>] ? find_get_page+0x18/0x90
[   87.149350]  [<ffffffff81089df8>] ? filemap_fault+0x98/0x430
[   87.149398]  [<ffffffff810a45c2>] ? __do_fault+0x52/0x4b0
[   87.149449]  [<ffffffff810a3259>] ? free_pgtables+0x49/0xd0
[   87.149498]  [<ffffffff810a4aad>] ? handle_pte_fault+0x8d/0xb50
[   87.149548]  [<ffffffff813dfa4e>] ? common_interrupt+0xe/0x13
[   87.149595]  [<ffffffff8101fa57>] ? do_page_fault+0x137/0x3c0
[   87.149645]  [<ffffffff810aa1fa>] ? mmap_region+0x24a/0x5d0
[   87.149693]  [<ffffffff810a9697>] ? get_unmapped_area+0x87/0x120
[   87.149739]  [<ffffffff813dfc5f>] ? page_fault+0x1f/0x30
[   87.149784] handlers:
[   87.149825] [<ffffffff8127dd60>] e1000_intr
[   87.149894] Disabling IRQ #21

IRQ 21 это как раз прерывание первого порта карты:

 21:     100001          0          0          0   IO-APIC-fasteoi   eth0
 22:          0          0          0          0   IO-APIC-fasteoi   eth1
Т.е. оно генерирует сто тыщ и одно прерывание и умирает :)

При том, что прерывание задисейблено, карта работает, хоть и крайне херово:

# ping 10.1.0.95
PING 10.1.0.95 (10.1.0.95) 56(84) bytes of data.
64 bytes from 10.1.0.95: icmp_req=1 ttl=64 time=1134 ms
64 bytes from 10.1.0.95: icmp_req=2 ttl=64 time=134 ms
64 bytes from 10.1.0.95: icmp_req=3 ttl=64 time=32.9 ms
64 bytes from 10.1.0.95: icmp_req=4 ttl=64 time=31.9 ms
64 bytes from 10.1.0.95: icmp_req=5 ttl=64 time=31.6 ms
64 bytes from 10.1.0.95: icmp_req=6 ttl=64 time=29.9 ms
64 bytes from 10.1.0.95: icmp_req=7 ttl=64 time=28.3 ms
^C
--- 10.1.0.95 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6006ms
rtt min/avg/max/mdev = 28.314/203.378/1134.713/381.880 ms, pipe 2

Куда копать, товарищи? irqpoll, конечно, пробовал, стало всё еще хуже. Пинги по секунде. Может в биосе что покрутить?

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

Ну как-как, как обычно. Они обратно-совместимы.

Вот как раз с педивикии фотка моей карты в статье про PCI-X: http://upload.wikimedia.org/wikipedia/en/6/61/Dualportintelmtpro1000mtservera...

PCI-X is not compatible with the older 5-volt I/O, which the first revision of PCI used exclusively. Starting with PCI 2.x, 3.3 volt I/O was supported, with which PCI-X is backward compatible.
blind_oracle ★★★★★
() автор топика
Ответ на: комментарий от blind_oracle

Всё ясно, я просто сначала на PCI-E подумал.
А вывод какой команды у тебя в третьем блоке кода (прерывания).

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

cat /proc/interrupts

В этой убогой материнке 4 встроенных сетевухи 82574, а из слотов - только PCI-Ex16, который уже занят рейд-контроллером и один убогий PCI. А мне нужно еще пару портов сетевых добавить хорошо бы. Вот я эту карту и заказал, а она вон как плохо себя ведёт... Если не взлетит придется брать 1-портовую PCI...

blind_oracle ★★★★★
() автор топика

Посмотрите параметры модуля для сетевухи, может там можно включать/выключать MSI? Хотя мне кажется, что дело не в нём. Посмотрите также другие опции. Попробуйте в BIOS выставить Plug'n'Play OS в Disabled (если есть). Можно еще BIOS обновить в надежде, что там получше ACPI.

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

Проверил сетевуху в серваке с PCI-X: всё работает как надо. Биос тут последний на данный момент стоит. Плаг-н-плей попробую отрубить, спасибо. Параметров у модуля особо нет, можно в принципе попробовать внеядерный e1000, но он уже давно не обновлялся. Да и MSI вроде как не поддерживается на этой карте.

That hardware is PCI/PCI-X only and our first design to use MSI-X
interrupt (single vector message based interrupt).  Unfortunately it
didn't work[1].  The solution from the driver side was to make sure that
the driver never enabled it on those parts.  The only parts for gigabit
that correctly support MSI-X are the 82574, 82575 and 82576 based parts.
MSI (single vector) is supported by >= 82571, i.e. 82571/2/3, ESB2,
ICH8/9/10.

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