table of contents
BPFTUNE-NET-BUFFER(8) | System Manager's Manual | BPFTUNE-NET-BUFFER(8) |
NAME¶
BPFTUNE-NET-BUFFER - Networking buffer bpftune plugin for managing net core buffers
DESCRIPTION¶
When NAPI polls to handle multiple packets, the number of packets is limited by net.core.netdev_budget while the time is limited by net.core.netdev_budget_usecs. If we hit the limit of number of packets processed without using the usecs budget the time_squeezed softnet stat is bumped; if we see increases in time_squeezed, bump netdev_budget/netdev_budget_usecs.
However, we want to limit such increases if they lead to longer task scheduling wait times, so we monitor the ratio of time tasks spend waiting versus running across all processors, and if we see correlations between increases in netdev budget and wait/run ratio increases, netdev budget is tuned down.
Tunables:
- net.core.netdev_max_backlog: maximum per-cpu backlog queue length; default 1024.
- net.core.flow_limit_cpu_bitmap: avoid drops for small flows on a per-cpu basis; default 0.
- net.core.netdev_budget: maximum number of packets processed in a NAPI cycle
- net.core.netdev_budget_usecs: maximum amount of time in microseconds for a NAPI cycle