Jump to content
Калькуляторы

проблема с ioatdma/dca/ixgbe драйвером

у меня на железке с 10гбит сетевухой не пашет ioatdma и DCA

на Intel Corporation 5000 Series Chipset с тем же конфигом оси и дров всё работает, по крайней мере ошибок в dmesg нет ни от ioatdma ни от ixgbe

в биосе IOAT и DCA включены.

сетевуха такая: Intel Corporation 82599EB 10-Gigabit Network Connection

платформа: supermicro x8dtu-f системная плата

2xIntel® Xeon® CPU X5650 @ 2.67GHz 12 ядер 24 потока

чипсет: Intel Corporation 5520/5500/X58

lsmod:

dca 3633 3 igb,ixgbe,ioatdma

 

проблема кажется именно в ioatdma, если вынуть сетевуху то всё равно Intel® I/OAT DMA Engine init failed

 

 

вот что происходит

 

dmesg | grep "ioat\|dca\|ixgbe"

[ 10.436322] dca service started, version 1.12.1

[ 10.596656] ioatdma: Intel® QuickData Technology Driver 4.00

[ 10.596714] ioatdma 0000:00:16.0: PCI INT A -> GSI 43 (level, low) -> IRQ 43

[ 10.596760] ioatdma 0000:00:16.0: setting latency timer to 64

[ 10.596768] ioatdma 0000:00:16.0: channel error register unreachable

[ 10.596769] ioatdma 0000:00:16.0: channel enumeration error

[ 10.596772] ioatdma 0000:00:16.0: Intel® I/OAT DMA Engine init failed

[ 10.596783] ioatdma 0000:00:16.0: PCI INT A disabled

[ 10.628435] ixgbe 0000:05:00.0: PCI INT A -> GSI 34 (level, low) -> IRQ 34

[ 10.628445] ixgbe 0000:05:00.0: setting latency timer to 64

[ 10.778101] ixgbe: Direct Cache Access (DCA) set to 1

[ 10.778103] ixgbe: Receive-Side Scaling (RSS) set to 12

[ 10.778109] ixgbe: 0000:05:00.0: ixgbe_check_options: dynamic interrupt throttling enabled

[ 10.778111] ixgbe: 0000:05:00.0: ixgbe_check_options: Flow Director hash filtering enabled

[ 10.778113] ixgbe: 0000:05:00.0: ixgbe_check_options: Flow Director allocated 64kB of packet buffer

[ 10.778115] ixgbe: 0000:05:00.0: ixgbe_check_options: ATR Tx Packet sample rate set to default of 20

[ 10.778117] ixgbe: Node to start on set to 0

[ 10.778118] ixgbe: 0000:05:00.0: ixgbe_check_options: node set to 0

[ 10.800780] ixgbe 0000:05:00.0: irq 81 for MSI/MSI-X

[ 10.800785] ixgbe 0000:05:00.0: irq 82 for MSI/MSI-X

[ 10.800789] ixgbe 0000:05:00.0: irq 83 for MSI/MSI-X

[ 10.800793] ixgbe 0000:05:00.0: irq 84 for MSI/MSI-X

[ 10.801040] ixgbe: 0000:05:00.0: ixgbe_init_interrupt_scheme: Multiqueue Enabled: Rx Queue count = 24, Tx Queue count = 24

[ 10.801860] ixgbe: eth0: ixgbe_probe: No DCA provider found. Please start ioatdma for DCA functionality.

[ 10.801862] ixgbe: eth0: ixgbe_probe: (PCI Express:5.0Gb/s:Width x8) 00:1b:21:74:57:54

[ 10.801940] ixgbe: eth0: ixgbe_probe: MAC: 2, PHY: 15, SFP+: 5, PBA No: E68785-003

[ 10.801942] ixgbe: eth0: ixgbe_probe: GRO is enabled

[ 10.801943] ixgbe: eth0: ixgbe_probe: HW RSC is enabled

[ 10.802531] ixgbe: eth0: ixgbe_probe: Intel® 10 Gigabit Network Connection

 

подозреваю что из-за этого уже при 3 гигабитах сквозного трафика загрузка процов за 50%, потери и подскоки пинга

судя по этой статье в моём случае что-то явно не так: http://nag.ru/articles/article/19974/kak-m...tizirovali.html

Share this post


Link to post
Share on other sites

lionel

Проверьте эти опции

CONFIG_DMADEVICES=y
CONFIG_INTEL_IOATDMA=y
CONFIG_DMA_ENGINE=y
CONFIG_NET_DMA=y
CONFIG_ASYNC_TX_DMA=y
CONFIG_DCA=y

 

Какое ядро, и откуда драйвера брали? Просто драйвера скаченные с сайта INTEL надо собирать отдельно с I/OT DMA Engine.

 

Как прерывания разложили?

Edited by Sp!ZER

Share this post


Link to post
Share on other sites

lionel

Извиняюсь сразу не увидел. Насколько я понимаю у Вас плата s5520 (sr2600), если это так, то Вам надо искать патчик для ioatdma, так как на этой платформе регистры, отвечаюсщие за взаимодействие IOATDMA и DCA не много не стандартные. Поэтому и модуль не может его инициализировать. В 2.6.37 еще проблема сохранилась, возможно это исправят в следующих версиях ядра.

 

Я завтра на работе поиграюсь (как раз есть свободная плтформа с 10ками на борту), может что нибудь придмуаю.

Edited by Sp!ZER

Share this post


Link to post
Share on other sites

ничего похожего на такой патч не встречал. ядро не выше чем 2.6.35 могу использовать т.к. на >35 ipt_NETFLOW не работает.

Share this post


Link to post
Share on other sites

ничего похожего на такой патч не встречал. ядро не выше чем 2.6.35 могу использовать т.к. на >35 ipt_NETFLOW не работает.

у самого такая проблема. занимаюсь изучением изменений для того чтобы патчик заделать для ipt_NETFLOW.

Share this post


Link to post
Share on other sites
http://forum.nag.ru/forum/index.php?showto...rt=#entry575341

работает это или нет - не проверял. а вот патчик чинящий ioat на 5520 чипсете в упор не найду, но ещё правда 38 ядро не проверял

наконец то нашел минутку разобраться... собственно результаты:

 

Я так понял ты из Интерзета :) будем значит коллегами и соседями по работе.

 

Добавь в ядро опцию

CONFIG_PCI_MMCONFIG=y

 

пересобери его, и будет тебе счастье!

 

ioatdma: Intel(R) QuickData Technology Driver 4.00
ioatdma 0000:00:16.0: PCI INT A -> GSI 43 (level, low) -> IRQ 43
ioatdma 0000:00:16.0: setting latency timer to 64
ioatdma 0000:00:16.0: irq 57 for MSI/MSI-X
ioatdma 0000:00:16.1: PCI INT B -> GSI 44 (level, low) -> IRQ 44
ioatdma 0000:00:16.1: setting latency timer to 64
ioatdma 0000:00:16.1: irq 58 for MSI/MSI-X
ioatdma 0000:00:16.2: PCI INT C -> GSI 45 (level, low) -> IRQ 45
ioatdma 0000:00:16.2: setting latency timer to 64
ioatdma 0000:00:16.2: irq 59 for MSI/MSI-X
ioatdma 0000:00:16.3: PCI INT D -> GSI 46 (level, low) -> IRQ 46
Intel(R) Gigabit Ethernet Network Driver - version 2.1.0-k2
Copyright (c) 2007-2009 Intel Corporation.
igb 0000:01:00.0: PCI INT B -> GSI 40 (level, low) -> IRQ 40
igb 0000:01:00.0: setting latency timer to 64
igb 0000:01:00.0: irq 60 for MSI/MSI-X
igb 0000:01:00.0: irq 61 for MSI/MSI-X
igb 0000:01:00.0: irq 62 for MSI/MSI-X
igb 0000:01:00.0: irq 63 for MSI/MSI-X
igb 0000:01:00.0: irq 64 for MSI/MSI-X
igb 0000:01:00.0: irq 65 for MSI/MSI-X
igb 0000:01:00.0: irq 66 for MSI/MSI-X
igb 0000:01:00.0: irq 67 for MSI/MSI-X
igb 0000:01:00.0: irq 68 for MSI/MSI-X
ioatdma 0000:00:16.3: setting latency timer to 64
ioatdma 0000:00:16.3: irq 69 for MSI/MSI-X
ioatdma 0000:00:16.4: PCI INT A -> GSI 43 (level, low) -> IRQ 43
ioatdma 0000:00:16.4: setting latency timer to 64
ioatdma 0000:00:16.4: irq 70 for MSI/MSI-X
ioatdma 0000:00:16.5: PCI INT B -> GSI 44 (level, low) -> IRQ 44
ioatdma 0000:00:16.5: setting latency timer to 64
ioatdma 0000:00:16.5: irq 71 for MSI/MSI-X
ioatdma 0000:00:16.6: PCI INT C -> GSI 45 (level, low) -> IRQ 45
ioatdma 0000:00:16.6: setting latency timer to 64
ioatdma 0000:00:16.6: irq 72 for MSI/MSI-X
ioatdma 0000:00:16.7: PCI INT D -> GSI 46 (level, low) -> IRQ 46
ioatdma 0000:00:16.7: setting latency timer to 64
ioatdma 0000:00:16.7: irq 73 for MSI/MSI-X
ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver - version 2.0.44-k2
ixgbe: Copyright (c) 1999-2010 Intel Corporation.
ixgbe 0000:05:00.0: PCI INT A -> GSI 32 (level, low) -> IRQ 32
ixgbe 0000:05:00.0: setting latency timer to 64
ixgbe 0000:05:00.0: irq 74 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 75 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 76 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 77 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 78 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 79 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 80 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 81 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 82 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 83 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 84 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 85 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 86 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 87 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 88 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 89 for MSI/MSI-X
ixgbe 0000:05:00.0: irq 90 for MSI/MSI-X
ixgbe: 0000:05:00.0: ixgbe_init_interrupt_scheme: Multiqueue Enabled: Rx Queue count = 16, Tx Queue count = 16
ixgbe 0000:05:00.0: (PCI Express:2.5Gb/s:Width x8) 00:15:17:ba:3e:10
ixgbe 0000:05:00.0: MAC: 1, PHY: 0, PBA No: ffffff-0ff
ixgbe 0000:05:00.0: Intel(R) 10 Gigabit Network Connection
ixgbe 0000:05:00.1: PCI INT B -> GSI 42 (level, low) -> IRQ 42
igb 0000:01:00.0: DCA enabled
igb 0000:01:00.0: Intel(R) Gigabit Ethernet Network Connection
igb 0000:01:00.0: eth1: (PCIe:2.5Gb/s:Width x4) 00:15:17:b0:ce:6c
igb 0000:01:00.0: eth1: PBA No: 1030ff-0ff
igb 0000:01:00.0: Using MSI-X interrupts. 4 rx queue(s), 4 tx queue(s)
igb 0000:01:00.1: PCI INT A -> GSI 28 (level, low) -> IRQ 28
igb 0000:01:00.1: setting latency timer to 64
igb 0000:01:00.1: irq 91 for MSI/MSI-X
igb 0000:01:00.1: irq 92 for MSI/MSI-X
igb 0000:01:00.1: irq 93 for MSI/MSI-X
igb 0000:01:00.1: irq 94 for MSI/MSI-X
igb 0000:01:00.1: irq 95 for MSI/MSI-X
igb 0000:01:00.1: irq 96 for MSI/MSI-X
igb 0000:01:00.1: irq 97 for MSI/MSI-X
igb 0000:01:00.1: irq 98 for MSI/MSI-X
igb 0000:01:00.1: irq 99 for MSI/MSI-X
ixgbe 0000:05:00.1: setting latency timer to 64
udev: renamed network interface eth0 to eth2
ixgbe 0000:05:00.1: irq 100 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 101 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 102 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 103 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 104 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 105 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 106 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 107 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 108 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 109 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 110 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 111 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 112 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 113 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 114 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 115 for MSI/MSI-X
ixgbe 0000:05:00.1: irq 116 for MSI/MSI-X
ixgbe: 0000:05:00.1: ixgbe_init_interrupt_scheme: Multiqueue Enabled: Rx Queue count = 16, Tx Queue count = 16
ixgbe 0000:05:00.1: (PCI Express:2.5Gb/s:Width x8) 00:15:17:ba:3e:11
ixgbe 0000:05:00.1: MAC: 1, PHY: 0, PBA No: ffffff-0ff
ixgbe 0000:05:00.1: Intel(R) 10 Gigabit Network Connection

 

Однако я не тестировал это на нагрузке и пока не представляю как это себя ведет. Думаю на выходных появится стата.

Edited by Sp!ZER

Share this post


Link to post
Share on other sites

спасибо за инфу. про MMCONFIG не в курсе был. в x86 есть опция pci_access_mode, стоит в AUTO. в x86_64 есть галка для использования MMCONFIG. а дома x86, благодаря PAE 64 гига адресуются и жаловаться не приходится. я изначально по-другому решил проблему, порывшись в сорцах. однако это не решило пролем с потерями. похоже что виновата была опция NAPI с которой собирался модуль по умолчанию. модуль в составе ядра похоже не способен адекватно работать с 82599. так что собирал уже 3.х.х. без NAPI потерь нет.

Share this post


Link to post
Share on other sites
благодаря PAE 64 гига адресуются и жаловаться не приходится.
x64 все же будет лучше, так как коннтрэк будет меньше памяти кушать для харнения сессий.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this