IOAT सक्षम है लेकिन लिनक्स के साथ उपयोग नहीं किया जा रहा है?


11

Igb संस्करण ४.१.२ के साथ हमारे R610s पर मैं ioatdma मॉड्यूल लोडिंग देख रहा हूँ (और लोडर के साथ लोड):

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

हमारे पास एक क्वाड पोर्ट इंटेल निक है जो इसका समर्थन करना चाहिए:

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


रेडहैट 6 सही?
mdpc 19

@ mdpc: सेंटोस 6.3, यह देखने के लिए बहुत नए कर्नेल की कोशिश करता है कि क्या यह मदद करेगा, लेकिन यह नहीं हुआ। यह एक माध्यमिक मामले का पता चला, जब उसे IPSec यातायात (नहीं है कि मैं IPsec यातायात पर ही उतारने उम्मीद के साथ ksoftirqd पर उच्च si% धारण कर रहा था, लेकिन सभी में कोई ioatdma है लगता होगा।
केली ब्रांट

2
क्या मदरबोर्ड चिपसेट में IOAT का समर्थन है? क्या IOAT सिस्टम BIOS में चालू है? क्या आप dmesg में "Intel (R) I / OAT DMA इंजन" देखते हैं? यह एक एनआईसी को इंगित करेगा जो आईओएटी का समर्थन करता है। क्या आप देखते हैं कि damsg में "DCA BIOS में अक्षम है"? यह डीसीए के लिए कोई BIOS समर्थन या सक्षमता का संकेत नहीं देगा।
सुपरजामी

जब मैंने पिछली बार डेल (कई साल पहले) से पूछा तो उन्होंने कहा कि R610 BIOS 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 जैसे पूर्ण सर्वर को अपडेट करें।

दूसरे, हमेशा नवीनतम इंटेल नेटवर्क ड्राइवर का उपयोग करें igb। बस इसे स्रोत से संकलित करें।

BIOS DCA और IOATDMA दोनों को सक्षम करता है। Linux में यह आज़माएँ:

# modprobe ioatdma

# dmesg

आपको ioatdma ड्राइवर को लोड करते हुए देखना चाहिए।

अब, igbड्राइवर अलग है ixgbeजो 10GBps का है। जब से मैं उपयोग न igbसब पर, मैं तुम्हें रोक नेटवर्क का आग्रह करते हैं कर सकते हैं /etc/init.d/network stopऔर rmmod igbऔर modprobe igbअगर कोई मतभेद और बाद परिणाम अगर आप कृपया कर सकते हैं कर रहे हैं देखने के लिए फिर से।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.