IOAT włączony, ale nie używany w systemie Linux?


11

Na naszych R610 z igb w wersji 4.1.2 widzę ładowanie modułu ioatdma (i ładowane z 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

Mamy czteroportowy port Intel nic, który powinien go wspierać:

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)

Wygląda jednak na to, że nie jest wykorzystywany do żadnego ruchu sieciowego:

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

Czy ktoś wie, jak to zrobić, aby ioat był używany do ruchu sieciowego?

Jądro jest 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 prawda?
— mdpc

@mdpc: CentOS 6.3, wypróbowałem znacznie nowsze jądro, aby sprawdzić, czy to pomoże, ale nie pomogło. To był drugi problem wykryty, gdy miał wysoki% si na ksoftirqd z ruchem ipsec (nie żebym spodziewał się odciążenia samego ruchu ipsec, ale wydaje się, że w ogóle nie ma ioatdma.
— Kyle Brandt

2
Czy chipset płyty głównej obsługuje IOAT? Czy IOAT jest włączony w systemie BIOS? Czy widzisz „Znaleziono silnik Intel (R) I / OAT DMA” w dmesg? Oznaczałoby to, że została zlokalizowana karta sieciowa obsługująca IOAT. Czy widzisz „DCA jest wyłączone w BIOS” w dmesg? Oznaczałoby to brak obsługi lub włączenia systemu BIOS dla DCA.
— suprjami

Kiedy ostatnio pytałem Dell (kilka lat temu), powiedzieli, że BIOS R610 nie obsługuje DCA, ani nie planują dodać obsługi tego systemu.
— Craig,

2
Zgadza się, jak faceci stwierdzili, co pokazuje „dmesg | grep DCA”?
— Danila Ladner,

Odpowiedzi:


4

Jak duże są pakiety, które wysyłasz? Domyślnie sterownik IOATDMA jest używany tylko w przypadku dużych pakietów. Możesz wyświetlić bieżące ustawienie za pomocą:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Jeśli chcesz, aby wartość była niższa, możesz ustawić ją za pomocą sysctl. Na przykład, aby ustawić rozmiar pakietu na 1, użyj:

sysctl net.ipv4.tcp_dma_copybreak=1

2

Przed rozpoczęciem zaktualizuj pełny serwer, taki jak BIOS, w tym oprogramowanie dysku twardego.

Po drugie, zawsze używaj najnowszego sterownika sieciowego Intel igb. Po prostu skompiluj to ze źródła.

BIOS włącza zarówno DCA, jak i IOATDMA. W systemie Linux spróbuj tego:

# modprobe ioatdma

# dmesg

Powinieneś zobaczyć załadowany sterownik ioatdma.

Teraz igbsterownik różni się od 10 ixgbeGB / s. Ponieważ ja nie używaj igbw ogóle, mogę powiedzieć, aby spróbować sieci zatrzymania /etc/init.d/network stopi rmmod igbi modprobe igbponownie, aby sprawdzić, czy są jakieś różnice i post wyniki jeśli możesz pls.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.