เปิดใช้งาน 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.