On 10.6.2022. 10:20, David Gwynne wrote:
>
>
>> On 10 Jun 2022, at 08:24, Hrvoje Popovski <[email protected]> wrote:
>>
>> On 9.6.2022. 19:25, Hrvoje Popovski wrote:
>>> On 9.6.2022. 19:11, Jan Klemkow wrote:
>>>> On Thu, Jun 09, 2022 at 08:25:22AM +0200, Hrvoje Popovski wrote:
>>>>> On 8.6.2022. 22:01, Hrvoje Popovski wrote:
>>>>>> On 8.6.2022. 15:04, Jan Klemkow wrote:
>>>>>>> Could you show me, how your setup and your configuration looks like?
>>>>>> Yes, of course ..
>>>>>>
>>>>>> All my lab boxes are connected to switch (no flow-control). In this
>>>>>> setup ix0 and ix1 are in aggr and vlans 700 and 800 are tagged on aggr3.
>>>>>> I have tried tcpbench and iperf3 from openbsd or linux box and with tso
>>>>>> I'm getting few Kbps. In attachment you can find tcpdump for iperf3 on
>>>>>> openbsd with or without tso
>>>>>>
>>>>>> I will play more with this setup maybe I'm doing something terribly
>>>>>> wrong...
>>>>>>
>>>>>> My OpenBSD conf:
>>>>>>
>>>>>> r620-1# cat /etc/hostname.ix0
>>>>>> up
>>>>>>
>>>>>> r620-1# cat /etc/hostname.ix1
>>>>>> up
>>>>>>
>>>>>> r620-1# cat /etc/hostname.aggr3
>>>>>> trunkport ix0
>>>>>> trunkport ix1
>>>>>> up
>>>>>>
>>>>>> r620-1# cat /etc/hostname.vlan700
>>>>>> parent aggr3
>>>>>> vnetid 700
>>>>>> lladdr ec:f4:bb:da:f7:f8
>>>>>> inet 192.168.100.11/24
>>>>>> !route add 16/8 192.168.100.111
>>>>>> up
>>>>>>
>>>>>> r620-1# cat /etc/hostname.vlan800
>>>>>> parent aggr3
>>>>>> vnetid 800
>>>>>> lladdr ec:f4:bb:da:f7:fa
>>>>>> inet 192.168.111.11/24
>>>>>> !route add 48/8 192.168.111.111
>>>>>> up
>>>>>
>>>>> now I've configured aggr like this
>>>>>
>>>>> ix0 - aggr0 - vlan700
>>>>> ix1 - aggr1 - vlan800
>>>>> ip configuration is the same
>>>>>
>>>>> still I have problem with tso
>>>>>
>>>>> tcpdump in attachment
>>>>
>>>> The tcpdump output on my machine looks similar to yours.
>>>> Do you see TCP retransmits on your sending Linux host?
>>>>
>>>> # netstat -s | grep retransmitted
>>>> 0 segments retransmitted
>>>>
>>>
>>> [root@test2 pktgen]# netstat -s | grep -i segment
>>> 8352173627 segments received
>>> 14648977712 segments send out
>>> 13336873 segments retransmited
>>> 586 bad segments received.
>>>
>>> yes, segments retransmited is increasing
>>>
>>>
>>>> Which specific ix(4) NIC do you use?
>>>>
>>>
>>> r620-1# dmesg | grep ix
>>> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
>>> ix0 at pci1 dev 0 function 0 "Intel 82599" rev 0x01, msix, 6 queues,
>>> address ec:f4:bb:da:f7:f8
>>> ix1 at pci1 dev 0 function 1 "Intel 82599" rev 0x01, msix, 6 queues,
>>> address ec:f4:bb:da:f7:fa
>>> ix2 at pci4 dev 0 function 0 "Intel X540T" rev 0x01, msix, 6 queues,
>>> address a0:36:9f:29:f2:0c
>>> ix3 at pci4 dev 0 function 1 "Intel X540T" rev 0x01, msix, 6 queues,
>>> address a0:36:9f:29:f2:0e
>>>
>>>
>>> I'm using ix0 and ix1 for testing
>>>> I'm using these two:
>>>>
>>>> # dmesg | grep ^ix
>>>> ix0 at pci3 dev 0 function 0 "Intel 82599" rev 0x01, msix, 12 queues,
>>>> address 00:1b:21:87:fb:2c
>>>> ix1 at pci3 dev 0 function 1 "Intel 82599" rev 0x01, msix, 12 queues,
>>>> address 00:1b:21:87:fb:2d
>>>>
>>>> Thanks,
>>>> Jan
>>>>
>>>
>>
>> Hi,
>>
>> I tried with trunk lacp and tagged vlan700 over trunk0 and it's working
>> as expected. Everything is the same as before, only aggr0 is now trunk0.
>>
>> with tso
>> [ 4] 17.00-18.00 sec 1.09 GBytes 9.39 Gbits/sec 22 622 KBytes
>> [ 4] 18.00-19.00 sec 1.09 GBytes 9.39 Gbits/sec 17 662 KBytes
>> [ 4] 19.00-20.00 sec 1.09 GBytes 9.39 Gbits/sec 0 696 KBytes
>> [ 4] 20.00-21.00 sec 1.09 GBytes 9.39 Gbits/sec 0 735 KBytes
>>
>>
>> without tso
>> [ 4] 17.00-18.00 sec 594 MBytes 4.98 Gbits/sec 0 612 KBytes
>> [ 4] 18.00-19.00 sec 594 MBytes 4.98 Gbits/sec 0 646 KBytes
>> [ 4] 19.00-20.00 sec 595 MBytes 4.99 Gbits/sec 0 665 KBytes
>> [ 4] 20.00-20.87 sec 515 MBytes 4.99 Gbits/sec 0 675 KBytes
>>
>>
>> tcpdump is the same as with aggr...
>>
>>
>> After this I've tried same aggr/vlan setup on two different boxes with
>> ix interfaces and send traffic to them from linux and openbsd and
>> results are not good ...
>> Only differences between your setup and mine is that i have switch and
>> you have directly connected hosts... but i don't think that should be
>> the problem..
>>
>> It would be great if someone else could test this because it's not that
>> i don't know what I'm doing but I'm running out of ideas...
>
> is this rx ring moderation not scaling fast enough?
>
> what's systat mb look like when you're trying? do you see qdrops increase in
> the ix-rxq kstats?
>
> dlg
while sending traffic from linux to openbsd ix0 with tso
systat mb
IFACE RING LIVELOCKS SIZE ALIVE LWM HWM CWM
System mbufs 0 256 1685 143
mcl2k 2048 513 74
mcl2k2 2112 615 82
mcl4k 4096 0 1
mcl8k 8192 512 65
mcl12k 12288 36 10
ix0 0 2048 12 10 255 12
1 2048 13 10 255 13
2 2048 10 10 255 10
3 2048 10 10 255 10
4 2048 10 10 255 10
5 2048 10 10 255 10
6 2048 10 10 255 10
7 2048 10 10 255 10
8 2048 13 10 255 13
9 2048 10 10 255 10
10 2048 11 10 255 11
11 2048 10 10 255 10
12 2048 13 10 255 13
13 2048 10 10 255 10
14 2048 12 10 255 12
15 2048 10 10 255 10
I don't see any qdrops increasing
smc24# kstat ix-rxq | grep qdrops
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
qdrops: 0 packets
full kstat for ix0 while sending traffic
ix0:0:ix-rxq:0
packets: 2637 packets
bytes: 347878 bytes
qdrops: 0 packets
ix0:0:ix-rxq:1
packets: 237 packets
bytes: 355434 bytes
qdrops: 0 packets
ix0:0:ix-rxq:2
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:3
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:4
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:5
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:6
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:7
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:8
packets: 21023 packets
bytes: 31908615 bytes
qdrops: 0 packets
ix0:0:ix-rxq:9
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:10
packets: 8 packets
bytes: 693 bytes
qdrops: 0 packets
ix0:0:ix-rxq:11
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
ix0:0:ix-rxq:12
packets: 599 packets
bytes: 903535 bytes
qdrops: 0 packets
ix0:0:ix-rxq:13
packets: 2494545 packets
bytes: 3771018781 bytes
qdrops: 0 packets
ix0:0:ix-rxq:14
packets: 14417821 packets
bytes: 21806454328 bytes
qdrops: 0 packets
ix0:0:ix-rxq:15
packets: 12 packets
bytes: 993 bytes
qdrops: 0 packets
ix0:0:ix-stats:0
crc errs: 0 packets
tx link xon: 0 packets
rx link xon: 0 packets
tx link xoff: 0 packets
rx link xoff: 0 packets
rx 64B: 20 packets
rx 65-127B: 21423 packets
rx 128-255B: 5462 packets
rx 256-511B: 814 packets
rx 512-1023B: 2031 packets
rx 1024-maxB: 16907132 packets
tx good: 1911084 packets
rx good: 25678737785 bytes
tx good: 139295575 bytes
rx undersize: 0 packets
rx fragment: 0 packets
rx oversize: 0 packets
rx jabber: 0 packets
rx total: 25682300131 bytes
rx total: 16972733 packets
tx total: 1911084 packets
rx good: 16936882 packets
rx bcast: 37 packets
rx mcast: 2599 packets
tx 64B: 125 packets
tx 65-127B: 1908357 packets
tx 128-255B: 2602 packets
tx 256-511B: 0 packets
tx 512-1023B: 0 packets
tx 1024-maxB: 0 packets
tx mcast: 2603 packets
tx bcast: 3 packets
ix0:0:ix-txq:0
packets: 2738 packets
bytes: 396853 bytes
ix0:0:ix-txq:1
packets: 78 packets
bytes: 5580 bytes
ix0:0:ix-txq:2
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:3
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:4
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:5
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:6
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:7
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:8
packets: 13683 packets
bytes: 1055682 bytes
ix0:0:ix-txq:9
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:10
packets: 5 packets
bytes: 354 bytes
ix0:0:ix-txq:11
packets: 0 packets
bytes: 0 bytes
ix0:0:ix-txq:12
packets: 366 packets
bytes: 28272 bytes
ix0:0:ix-txq:13
packets: 1286487 packets
bytes: 90054066 bytes
ix0:0:ix-txq:14
packets: 607719 packets
bytes: 40109491 bytes
ix0:0:ix-txq:15
packets: 8 packets
bytes: 565 bytes
ix0:0:rxq:0
packets: 2637 packets
bytes: 347746 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:1
packets: 154 packets
bytes: 349008 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:2
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:3
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:4
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:5
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:6
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:7
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:8
packets: 16490 packets
bytes: 31525345 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:9
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:10
packets: 8 packets
bytes: 661 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:11
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:12
packets: 451 packets
bytes: 891371 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:13
packets: 2494545 packets
bytes: 3761040645 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:14
packets: 800101 packets
bytes: 20907684764 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:rxq:15
packets: 12 packets
bytes: 953 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
ix0:0:txq:0
packets: 2738 packets
bytes: 396397 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:1
packets: 78 packets
bytes: 5268 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:2
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:3
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:4
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:5
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:6
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:7
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:8
packets: 13683 packets
bytes: 1000950 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:9
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:10
packets: 5 packets
bytes: 334 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:11
packets: 0 packets
bytes: 0 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:12
packets: 366 packets
bytes: 26808 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:13
packets: 1286487 packets
bytes: 84908146 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:14
packets: 607719 packets
bytes: 40109459 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false
ix0:0:txq:15
packets: 8 packets
bytes: 533 bytes
qdrops: 0 packets
errors: 0 packets
qlen: 0 packets
maxqlen: 255 packets
oactive: false