You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
udp_buffer: add UDP buffer tuning for udp_mem, rmem_max,default
Trace UDP receive fails and based on the error code (-ENOBUFS
for overall UDP memory exhaustion, -ENOMEM for socket receive
buffer exhaustion), modify UDP-related buffer parameters.
Similar to TCP, look for memory pressure/memory exhaustion
approach in UDP and modify udp_mem and rmem appropriately
to avoid exhaustion where possible or mitigate it if unavoidable.
For net.core.rmem_max, if a socket experiences losses with a
rcvbuf ~= rmem_max, increase rmem_max. If a socket experiences
losses with rcvbuf ~= rmem_default _and_ it is not locked - i.e.
does not have an explicit rcvbuf value set by setsockopt -
increase rmem_default also.
Note that a given socket - because UDP has a fixed rcvbuf
size - will only contribute to such updates where its rcvbuf
is within range of rmem_max,default. So if a particular socket
cannot cope with load consistently - rathern than the kind of
bursty issues increasing rmem can help with - it will not
keep contributing to rmem updates.
Add tests for rmem updates, rmem locked (where we expect an
explicit setsockopt from iperf3 will lock rcvbuf so no updates
to rmem_default are expected) and udp mem exhaustion.
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
0 commit comments