RSS causing bad forwarding performance?

Kajetan Staszkiewicz <[email protected]>
Newsgroups gmane.os.freebsd.devel.net
Message-ID <[email protected]>
Hello Group,

I'm using Cisco TRex to evaluate forwarding perfomance of my FreeBSD
routers. I wanted to establish a baseline of what FreeBSD 15 can forward
without pf and compliated routing. The DUT is using a 6-core Intel
E-2146G CPU with disabled HT, Intel x520 for management and Mellanox
ConnectX-5 for forwarding. The mce interfaces use a separate fib, there
are just a few static routes to make TRex work, they are configured as
they should be for a router: -lro -mediaopt rxpause,txpause. The tests
have been performed without any NIC sysctl tuning.

Testing is done with
single udp stream:
  start -f stl/udp_1pkt_simple.py -m 50% --port 0
multiple udp streams:
  start -f stl/udp_1pkt_repeat_random.py -m 50% --port 0

Links are at 25Gb/s so at 50% TRex pushes around 18 Mpps to the DUT.

NetISR is configured to make use of all CPU cores:
net.isr.bindthreads=1
net.isr.maxthreads=-1

On the GENERIC kernel I'm getting:
dispatch=deferred single stream    :  5.2  Mpps
dispatch=deferred multiple streams :  4.2  Mpps
dispatch=direct   single stream    :  3.2  Mpps
dispatch=direct   multiple streams : 10.7  Mpps

GENERIC + option RSS:
dispatch=deferred single stream    :  0.4  Mpps
dispatch=deferred multiple streams : 11.0  Mpps
dispatch=direct   single stream    :  0.4  Mpps
dispatch=direct   multiple streams : 11.0  Mpps

GENERIC + option RSS + forwarding over Intel x520 NICs just to be sure
that it's not Mellanox's fault:
dispatch=deferred single stream    :  between 1.9 and 0.1 Mpps
dispatch=deferred multiple streams :  4.5  Mpps
dispatch=direct   single stream    :  between 1.9 and 0.1 Mpps
dispatch=direct   multiple streams :  4.5  Mpps

As you can see with option RSS and a single UDP stream the router
totally clogs, dropping forwarding performance as low as 100kps. Without
option RSS it works just fine.

Please note, that this test is not about forwarding "real" traffic, like
an iperf TCP stream, which would adjust the packet sending rate to
capacity of the DUT, but flooding it with more traffic than it can not
forward. Sadly the later is often the case for devices exposed to the
Internet.

-- 
| pozdrawiam / regards | Powered by Debian and FreeBSD  |
| Kajetan Staszkiewicz |   www: http://tuxpowered.net   |
|                      | matrix: @vegeta:tuxpowered.net |
`----------------------^--------------------------------'
OpenPGP_signature.asc (application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEEfSEIcxY9kDeZvSZsgKrXf6bzAFMFAmk1+goFAwAAAAAACgkQgKrXf6bzAFP7
txAAkyF24xtXlwG/T9563M3o0pVHJO/KjdVQeHAnkqPB/qmyMeTd4GGj1CLob0fAZMy423SSDeqq
n95rVuDvMwaiK7WP77c/MlrYHsm2sg60GjVOgtU2RPijQkdJO/ixOXwNGsxIFiZoDnMEbMmLudGX
a7o29CMhlEGzv+2O/9fHel0a5DhfrZFvbUpmBJAoheSm3fFZlcExpBKosIMv67111lJJV55g7yaJ
fVIStYRa7EBp1olZXcFXjC97t3gsw5tWJWx2AnaRQRegU2fJfueEC9Qwivmbi9UHvvNgSdNC8kNK
5Tk4fUsXYzNkmt/DllorxaQ0uaZJNGHfW9DCdp7DAX8qimvC0K5gpZfctZxsdNWOj7KKT8mjv+cX
u29QAK07cGj7z3BMHNmiclzgd8djq72qbA9mrhCr78wijsaiOZacG2EwIfMeZpA1AKU8Oqs18Qvo
n3wob12JZC+5HV3VbCvRPvugAjS6NDNXdNqCUx3hIRUL+jao4DNI0pULxx1hg1HbCZ8JHjkqHouI
fxY+qd8MBCSAmPL0it3bl4R+gH7L+yfaTItGF6L/Bi+IlVa8Bl4nZp+4+HCFL21z9NUPB38D/igd
rYxeH/wMhQRxRKKuJAsTg5payE8ho6oQlLb9rqf1fKx2S8kRXxN6xev5I3whBRh7eJfIBqTS7WbP
H4Y=
=jLHt
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.