On Tue 24 Oct 2023 at 22:02, Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> wrote: > From: Vlad Buslov <vladbu@xxxxxxxxxx> > > Current nf_flow_is_outdated() implementation considers any flow table flow > which state diverged from its underlying CT connection status for teardown > which can be problematic in the following cases: > > - Flow has never been offloaded to hardware in the first place either > because flow table has hardware offload disabled (flag > NF_FLOWTABLE_HW_OFFLOAD is not set) or because it is still pending on 'add' > workqueue to be offloaded for the first time. The former is incorrect, the > later generates excessive deletions and additions of flows. > > - Flow is already pending to be updated on the workqueue. Tearing down such > flows will also generate excessive removals from the flow table, especially > on highly loaded system where the latency to re-offload a flow via 'add' > workqueue can be quite high. > > When considering a flow for teardown as outdated verify that it is both > offloaded to hardware and doesn't have any pending updates. > > Fixes: 41f2c7c342d3 ("net/sched: act_ct: Fix promotion of offloaded unreplied tuple") > Reviewed-by: Paul Blakey <paulb@xxxxxxxxxx> > Signed-off-by: Vlad Buslov <vladbu@xxxxxxxxxx> > Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > --- > I am taking Vlad's patch and rebasing as per his request: > > This patch requires: > https://patchwork.ozlabs.org/project/netfilter-devel/patch/20231024193815.1987-1-pablo@xxxxxxxxxxxxx/ > Signed-off-by: Vlad Buslov <vladbu@xxxxxxxxxx>