diff options
author | Wei Hu <whu@FreeBSD.org> | 2025-02-24 13:56:06 +0000 |
---|---|---|
committer | Wei Hu <whu@FreeBSD.org> | 2025-02-24 13:56:06 +0000 |
commit | a18e99945414fb1f9d455b780c6fcf2d09cc68d8 (patch) | |
tree | 24fbc660d608f1d77973aac1bcbd5d28c9da4b28 /package/debian-mingw/(public-mirror) | |
parent | a5e380e51cdba64a392846a4eeda000f948f42ce (diff) |
Tcp perfomance tests show high number of retries under heave tx
traffic. The numbers of queue stops and wakeups also increase.
Further analysis suggests the FreeBSD network stack tends to send
TSO packets with multiple sg entries, typically ranging from
10 to 16. On mana, every two sgs takes one unit of tx ring.
Therefore, adding up one unit for the head, it takes 6 to 9 units
of tx ring to send a typical TSO packet.
Current default tx ring size is 256, which can get filled up
quickly under heavy load. When tx ring is full, the send queue
is stopped waiting for the ring space to be freed. This could
cause the network stack to drop packets, and lead to tcp
retransmissions.
Increase the default tx and rx ring size to 1024 units. Also
introduce two tuneables allowing users to request tx and rx ring
size in loader.conf:
hw.mana.rx_req_size
hw.mana.tx_req_size
When mana is loading, the driver checks these two values and
round them up to power of 2. If these two are not set or
the request values are out of the allowable range, it sets the
default ring size instead.
Also change the tx and rx single loop completion budget to 8.
Tested by: whu
MFC after: 2 weeks
Sponsored by: Microsoft
Diffstat (limited to 'package/debian-mingw/(public-mirror)')
0 files changed, 0 insertions, 0 deletions