[Bug 225179] axge(4): Driver performance issues

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 22 Aug 2024 02:50:56 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225179

Zhenlei Huang <zlei@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zlei@FreeBSD.org

--- Comment #6 from Zhenlei Huang <zlei@FreeBSD.org> ---
(In reply to Olivier Cochard from comment #5)
> Reproduced on FreeBSD 15.0-CURRENT #45 main-n271697-9ff2ebd92891-dirty.
>
> With a cross-over cable, iperf3 in TCP mode wasn’t able to reach 400mb/s (due to
> very busy drivers not able to process all input ACK from the server).

For gigabits the packets per second should be about 80000 with MTU size 1500.
80000 pps is not large for a modern machine.

> switch to UDP mode, the client was able to reach 900mb/s, but the server reported
> only half of it (50% loss).

It seems there's something wrong with the tx path of axge(4). May you please
also have a test with the reverse flow ( iperf -R ), aka server send data to
the client ? 

> Then tested the magic command "mediaopt flow":
>
> root@mobile:~ # ifconfig -v ue0 | grep media
>        media: Ethernet autoselect (1000baseT <full-duplex>)
> root@mobile:~ # ifconfig ue0 mediaopt flow
> root@mobile:~ # ifconfig -v ue0 | grep media                                                                                  
>        media: Ethernet autoselect <flowcontrol> (1000baseT <full-> 
> duplex,flowcontrol,master,rxpause,txpause>)
>
> And no more performance problem (all driver functions diseapear from a flamegraph),
> it reach 909 Mbits/sec in client TCP mode.

That is interesting. What about the reverse flow ? I'm also interested with the
flamegraph ( without flow control enabled ). May you please share it ?

-- 
You are receiving this mail because:
You are the assignee for the bug.