IOAT diaktifkan tetapi tidak digunakan dengan Linux?

11

Pada R610s kami dengan igb versi 4.1.2 Saya memang melihat pemuatan modul ioatdma (dan dimuat dengan 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

Kami memiliki quad port Intel nic yang harus mendukungnya:

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)

Namun, sepertinya itu tidak digunakan untuk lalu lintas jaringan apa pun:

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

Adakah yang tahu cara membuatnya sehingga ioat digunakan untuk lalu lintas jaringan?

Kernel adalah 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

Kyle Brandt
sumber
redhat 6 benar?
mdpc
@mdpc: CentOS 6.3, mencoba kernel yang jauh lebih baru untuk melihat apakah itu akan membantu, tetapi ternyata tidak. Ini adalah masalah sekunder yang ditemukan ketika memiliki% si tinggi di ksoftirqd dengan lalu lintas ipsec (bukan berarti saya mengharapkan pembongkaran pada lalu lintas ipsec itu sendiri, tetapi sepertinya tidak ada ioatdma sama sekali
Kyle Brandt
2
Apakah chipset motherboard memiliki dukungan untuk IOAT? Apakah IOAT dihidupkan di sistem BIOS? Apakah Anda melihat "Intel (R) I / OAT DMA Engine ditemukan" di dmesg? Ini akan menunjukkan NIC yang mendukung IOAT telah ditemukan. Apakah Anda melihat "DCA dinonaktifkan di BIOS" di dmesg? Ini menunjukkan tidak ada dukungan atau pemberdayaan BIOS untuk DCA.
suprjami
Ketika saya terakhir kali bertanya kepada Dell (beberapa tahun yang lalu) mereka mengatakan R610 BIOS tidak mendukung DCA juga tidak ada rencana untuk menambah dukungan untuk itu.
Craig
2
Benar, seperti yang dikatakan pria apa yang ditampilkan "dmesg | grep DCA"?
Danila Ladner

Jawaban:

4

Seberapa besar paket yang Anda kirim? Secara default driver IOATDMA hanya digunakan pada ukuran paket besar. Anda dapat melihat pengaturan saat ini dengan:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Jika Anda ingin nilainya lebih rendah, Anda dapat mengaturnya menggunakan sysctl. Misalnya, untuk mengatur ukuran paket ke 1, gunakan:

sysctl net.ipv4.tcp_dma_copybreak=1
Boscoe
sumber
2

Sebelum memulai, perbarui server lengkap seperti BIOS termasuk firmware hard drive.

Kedua, selalu gunakan Driver Jaringan Intel terbaru igb. Kompilasi saja dari sumbernya.

BIOS mengaktifkan DCA dan IOATDMA. Di linux coba ini:

# modprobe ioatdma

# dmesg

Anda seharusnya melihat driver ioatdma dimuat.

Sekarang, igbdrivernya berbeda dengan ixgbeyang 10GBps. Karena saya tidak menggunakan igbsama sekali, saya dapat memberitahu Anda untuk mencoba menghentikan jaringan /etc/init.d/network stopdan rmmod igbdan modprobe igblagi untuk melihat apakah ada perbedaan dan memposting hasil jika Anda bisa.

Andrew Smith
sumber