เปิดใช้งาน IOAT แต่ไม่ได้ใช้งานกับ Linux หรือไม่


11

ใน R610s ของเรากับ igb เวอร์ชั่น 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

เรามี quad พอร์ต 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

ไม่มีใครรู้วิธีที่จะทำให้มัน ioat ใช้สำหรับการรับส่งข้อมูลเครือข่าย

เคอร์เนลคือ 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 si% สูงใน ksoftirqd ที่มีปริมาณการใช้ ipsec (ไม่ใช่ที่ฉันคาดหวังว่าจะลดปริมาณการใช้งานการรับส่งข้อมูล ipsec เอง แต่ดูเหมือนว่าจะไม่มี ioatdma เลย
— Kyle Brandt

2
ชิปเซ็ตเมนบอร์ดรองรับ IOAT หรือไม่? IOAT เปิดใช้งานใน BIOS ระบบหรือไม่ คุณเห็น "พบ Intel (R) I / OAT DMA Engine" ใน dmesg หรือไม่ สิ่งนี้จะระบุว่าเป็น NIC ที่รองรับ IOAT แล้ว คุณเห็น "DCA ถูกปิดใช้งานใน BIOS" ใน dmesg หรือไม่ สิ่งนี้จะระบุว่าไม่มีการรองรับ BIOS หรือการเปิดใช้งานสำหรับ DCA
— suprjami

เมื่อฉันถาม Dell ครั้งล่าสุด (เมื่อหลายปีก่อน) พวกเขากล่าวว่า R610 BIOS ไม่รองรับ DCA และพวกเขาไม่มีแผนที่จะเพิ่มการรองรับ
— Craig

2
ใช่อย่างที่พวกเขาพูดว่า "dmesg | grep DCA" โชว์อะไร?
— Danila Ladner

คำตอบ:


4

แพ็คเก็ตที่คุณส่งมีขนาดใหญ่แค่ไหน โดยค่าเริ่มต้นไดรเวอร์ IOATDMA จะใช้กับขนาดแพ็คเก็ตขนาดใหญ่เท่านั้น คุณสามารถดูการตั้งค่าปัจจุบันด้วย:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

หากคุณต้องการให้ค่าต่ำลงคุณสามารถตั้งค่าโดยใช้ sysctl ตัวอย่างเช่นหากต้องการตั้งขนาดแพ็คเก็ตเป็น 1 ให้ใช้:

sysctl net.ipv4.tcp_dma_copybreak=1

2

ก่อนที่จะเริ่มอัปเดตเซิร์ฟเวอร์ที่สมบูรณ์เช่น BIOS รวมถึงเฟิร์มแวร์ฮาร์ดไดรฟ์

igbประการที่สองมักจะใช้ไดร์เวอร์รุ่นล่าสุด Intel เครือข่าย เพียงรวบรวมจากแหล่งที่มา

BIOS เปิดใช้งานทั้ง DCA และ IOATDMA ใน linux ลองนี้:

# modprobe ioatdma

# dmesg

คุณควรเห็นไดรเวอร์ ioatdma ถูกโหลด

ตอนนี้igbคนขับรถแตกต่างกันixgbeซึ่งเป็น 10GBps หนึ่ง ตั้งแต่ฉันไม่ใช้igbเลยผมสามารถบอกคุณพยายามที่จะหยุดเครือข่าย/etc/init.d/network stopและrmmod igbและmodprobe igbอีกครั้งเพื่อดูว่ามีความแตกต่างใด ๆ และผลการโพสต์หากคุณสามารถ pls

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.