[PATCH net-next 0/3] make skip_sw actually skip software

From: Asbjørn Sloth Tønnesen
Date: Thu Feb 15 2024 - 11:12:47 EST


Hi,

During development of flower-route[1], which I
recently presented at FOSDEM[2], I noticed that
CPU usage, would increase the more rules I installed
into the hardware for IP forwarding offloading.

Since we use TC flower offload for the hottest
prefixes, and leave the long tail to Linux / the CPU.
we therefore need both the hardware and software
datapath to perform well.

I found that skip_sw rules, are quite expensive
in the kernel datapath, sice they must be evaluated
and matched upon, before the kernel checks the
skip_sw flag.

This patchset optimizes the case where all rules
are skip_sw.

[1] flower-route
https://github.com/fiberby-dk/flower-route

[2] FOSDEM talk
https://fosdem.org/2024/schedule/event/fosdem-2024-3337-flying-higher-hardware-offloading-with-bird/

Asbjørn Sloth Tønnesen (3):
net: sched: cls_api: add skip_sw counter
net: sched: cls_api: add filter counter
net: sched: make skip_sw actually skip software

include/net/pkt_cls.h | 5 +++++
include/net/sch_generic.h | 3 +++
net/core/dev.c | 3 +++
net/sched/cls_api.c | 24 ++++++++++++++++++++++++
4 files changed, 35 insertions(+)

--
Best regards
Asbjørn Sloth Tønnesen
Network Engineer
Fiberby ApS