Messages in this thread | | | From | Jamal Hadi Salim <> | Date | Thu, 15 Feb 2024 12:39:28 -0500 | Subject | Re: [PATCH net-next 1/3] net: sched: cls_api: add skip_sw counter |
| |
+Cc Vlad and Marcelo..
On Thu, Feb 15, 2024 at 11:06 AM Asbjørn Sloth Tønnesen <ast@fiberby.net> wrote: > > Maintain a count of skip_sw filters. > > This counter is protected by the cb_lock, and is updated > at the same time as offloadcnt. > > Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net> > --- > include/net/sch_generic.h | 1 + > net/sched/cls_api.c | 4 ++++ > 2 files changed, 5 insertions(+) > > diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h > index 934fdb977551..46a63d1818a0 100644 > --- a/include/net/sch_generic.h > +++ b/include/net/sch_generic.h > @@ -476,6 +476,7 @@ struct tcf_block { > struct flow_block flow_block; > struct list_head owner_list; > bool keep_dst; > + atomic_t skipswcnt; /* Number of skip_sw filters */ > atomic_t offloadcnt; /* Number of oddloaded filters */
For your use case is skipswcnt ever going to be any different than offloadcnt?
cheers, jamal
> unsigned int nooffloaddevcnt; /* Number of devs unable to do offload */ > unsigned int lockeddevcnt; /* Number of devs that require rtnl lock. */ > diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c > index ca5676b2668e..397c3d29659c 100644 > --- a/net/sched/cls_api.c > +++ b/net/sched/cls_api.c > @@ -3483,6 +3483,8 @@ static void tcf_block_offload_inc(struct tcf_block *block, u32 *flags) > if (*flags & TCA_CLS_FLAGS_IN_HW) > return; > *flags |= TCA_CLS_FLAGS_IN_HW; > + if (tc_skip_sw(*flags)) > + atomic_inc(&block->skipswcnt); > atomic_inc(&block->offloadcnt); > } > > @@ -3491,6 +3493,8 @@ static void tcf_block_offload_dec(struct tcf_block *block, u32 *flags) > if (!(*flags & TCA_CLS_FLAGS_IN_HW)) > return; > *flags &= ~TCA_CLS_FLAGS_IN_HW; > + if (tc_skip_sw(*flags)) > + atomic_dec(&block->skipswcnt); > atomic_dec(&block->offloadcnt); > } > > -- > 2.43.0 >
| |