IOAT увімкнено, але не використовується з Linux?


11

На наших R610 з ibb версією 4.1.2 я бачу завантаження модуля ioatdma (та завантажений lsmod):

ioatdma: Intel(R) QuickData Technology Driver 4.00
ioatdma 0000:00:16.0: irq 80 for MSI/MSI-X
ioatdma 0000:00:16.1: irq 81 for MSI/MSI-X
ioatdma 0000:00:16.2: irq 82 for MSI/MSI-X
ioatdma 0000:00:16.3: irq 83 for MSI/MSI-X
ioatdma 0000:00:16.4: irq 84 for MSI/MSI-X
ioatdma 0000:00:16.5: irq 85 for MSI/MSI-X
ioatdma 0000:00:16.6: irq 86 for MSI/MSI-X
ioatdma 0000:00:16.7: irq 87 for MSI/MSI-X

У нас є чотирьохпортовий порт Intel nic, який повинен його підтримувати:

07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
08:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
08:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

Однак, схоже, він не використовується для жодного мережевого трафіку:

[root@or-rtlb01 ~]# cat /sys/class/dma/dma*/bytes*
0
0
0
0
0
0
0
0

Хтось знає, як зробити так, щоб іоат використовувався для мережевого трафіку?

Ядро є Linux or-rtlb01.ds.stackexchange.com 3.7.7-1.el6.elrepo.x86_64 #1 SMP Mon Feb 11 22:28:07 EST 2013 x86_64 x86_64 x86_64 GNU/Linux


redhat 6 правильно?
mdpc

@mdpc: CentOS 6.3, спробував набагато новіше ядро, щоб перевірити, чи допоможе це, але не вдалося. Це було вторинним питанням, виявленим при наявності високого si% на ksoftirqd з ipsec-трафіком (не те, що я очікую розвантаження на самому ipsec-трафіку, але, здається, немає іоадди взагалі.
Kyle Brandt

2
Чи має чіпсет материнської плати підтримку IOAT? Чи вмикається IOAT в системному BIOS? Чи бачите ви, що "dmas Engine I / OAT DMA Engine Intel (R) знайдено" в dmesg? Це вказувало б на розташування NIC, який підтримує IOAT. Ви бачите "DCA вимкнено в BIOS" у dmesg? Це вказуватиме на відсутність підтримки або включення BIOS для DCA.
suprjami

Коли я останній раз запитував Dell (кілька років тому), вони сказали, що BIOS R610 не підтримує DCA, і не планують додавати підтримку.
Крейг

2
Правильно, як хлопці заявили, що показує "dmesg | grep DCA"?
Даніла Ладнер

Відповіді:


4

Наскільки великі пакети, які ви надсилаєте? За замовчуванням драйвер IOATDMA використовується лише для великих розмірів пакетів. Ви можете переглянути поточний параметр за допомогою:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Якщо ви хочете, щоб значення було нижчим, ви можете встановити його за допомогою sysctl. Наприклад, щоб встановити розмір пакета в 1, використовуйте:

sysctl net.ipv4.tcp_dma_copybreak=1

2

Перед початком оновлення повного сервера, як BIOS, включаючи прошивку жорсткого диска.

По-друге, завжди використовуйте найновіший мережевий драйвер Intel igb. Просто складіть його з джерела.

BIOS включають як DCA, так і IOATDMA. У Linux спробуйте це:

# modprobe ioatdma

# dmesg

Ви повинні побачити завантажений драйвер ioatdma.

Тепер igbдрайвер відрізняється від ixgbe10 Гбіт / с. Так як я не використовую igbвзагалі, я можу сказати вам , щоб спробувати зупинити мережу /etc/init.d/network stopі rmmod igbі modprobe igbзнову , щоб побачити, чи є якесь - або відмінність , і якщо ви можете будь ласка розмістити результати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.