diff options
author | Eric Dumazet <edumazet@google.com> | 2023-10-02 13:17:37 +0000 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-10-05 13:27:39 +0200 |
commit | 29f834aa326e659ed354c406056e94ea3d29706a (patch) | |
tree | 406f106492820dd48661924dfb5e3aea69a2f887 /drivers/ptp | |
parent | 5579ee462dfe768297563a6083e21df52c3ad856 (diff) | |
download | lwn-29f834aa326e659ed354c406056e94ea3d29706a.tar.gz lwn-29f834aa326e659ed354c406056e94ea3d29706a.zip |
net_sched: sch_fq: add 3 bands and WRR scheduling
Before Google adopted FQ for its production servers,
we had to ensure AF4 packets would get a higher share
than BE1 ones.
As discussed this week in Netconf 2023 in Paris, it is time
to upstream this for public use.
After this patch FQ can replace pfifo_fast, with the following
differences :
- FQ uses WRR instead of strict prio, to avoid starvation of
low priority packets.
- We make sure each band/prio tracks its own usage against sch->limit.
This was done to make sure flood of low priority packets would not
prevent AF4 packets to be queued. Contributed by Willem.
- priomap can be changed, if needed (default value are the ones
coming from pfifo_fast).
In this patch, we set default band weights so that :
- high prio (band=0) packets get 90% of the bandwidth
if they compete with low prio (band=2) packets.
- high prio packets get 75% of the bandwidth
if they compete with medium prio (band=1) packets.
Following patch in this series adds the possibility to tune
the per-band weights.
As we added many fields in 'struct fq_sched_data', we had
to make sure to have the first cache line read-mostly, and
avoid wasting precious cache lines.
More optimizations are possible but will be sent separately.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Dave Taht <dave.taht@gmail.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/ptp')
0 files changed, 0 insertions, 0 deletions