Message ID | 20230212132520.12571-4-ozsh@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | ac7d27907d5445d0accaf998e1dc3ea570ed1ba6 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | add support for per action hw stats | expand |
On Sun, Feb 12, 2023 at 8:26 AM Oz Shlomo <ozsh@nvidia.com> wrote: > > Instead of passing 6 stats related args, pass the flow_stats. > > Signed-off-by: Oz Shlomo <ozsh@nvidia.com> > Reviewed-by: Simon Horman <simon.horman@corigine.com> > Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> cheers, jamal > --- > include/net/pkt_cls.h | 11 +++++------ > net/sched/cls_flower.c | 7 +------ > net/sched/cls_matchall.c | 6 +----- > 3 files changed, 7 insertions(+), 17 deletions(-) > > diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h > index cd410a87517b..bf50829d9255 100644 > --- a/include/net/pkt_cls.h > +++ b/include/net/pkt_cls.h > @@ -294,8 +294,7 @@ static inline void tcf_exts_put_net(struct tcf_exts *exts) > > static inline void > tcf_exts_hw_stats_update(const struct tcf_exts *exts, > - u64 bytes, u64 packets, u64 drops, u64 lastuse, > - u8 used_hw_stats, bool used_hw_stats_valid) > + struct flow_stats *stats) > { > #ifdef CONFIG_NET_CLS_ACT > int i; > @@ -306,12 +305,12 @@ static inline void tcf_exts_put_net(struct tcf_exts *exts) > /* if stats from hw, just skip */ > if (tcf_action_update_hw_stats(a)) { > preempt_disable(); > - tcf_action_stats_update(a, bytes, packets, drops, > - lastuse, true); > + tcf_action_stats_update(a, stats->bytes, stats->pkts, stats->drops, > + stats->lastused, true); > preempt_enable(); > > - a->used_hw_stats = used_hw_stats; > - a->used_hw_stats_valid = used_hw_stats_valid; > + a->used_hw_stats = stats->used_hw_stats; > + a->used_hw_stats_valid = stats->used_hw_stats_valid; > } > } > #endif > diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c > index 0b15698b3531..cb04739a13ce 100644 > --- a/net/sched/cls_flower.c > +++ b/net/sched/cls_flower.c > @@ -502,12 +502,7 @@ static void fl_hw_update_stats(struct tcf_proto *tp, struct cls_fl_filter *f, > tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, > rtnl_held); > > - tcf_exts_hw_stats_update(&f->exts, cls_flower.stats.bytes, > - cls_flower.stats.pkts, > - cls_flower.stats.drops, > - cls_flower.stats.lastused, > - cls_flower.stats.used_hw_stats, > - cls_flower.stats.used_hw_stats_valid); > + tcf_exts_hw_stats_update(&f->exts, &cls_flower.stats); > } > > static void __fl_put(struct cls_fl_filter *f) > diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c > index 705f63da2c21..b3883d3d4dbd 100644 > --- a/net/sched/cls_matchall.c > +++ b/net/sched/cls_matchall.c > @@ -331,11 +331,7 @@ static void mall_stats_hw_filter(struct tcf_proto *tp, > > tc_setup_cb_call(block, TC_SETUP_CLSMATCHALL, &cls_mall, false, true); > > - tcf_exts_hw_stats_update(&head->exts, cls_mall.stats.bytes, > - cls_mall.stats.pkts, cls_mall.stats.drops, > - cls_mall.stats.lastused, > - cls_mall.stats.used_hw_stats, > - cls_mall.stats.used_hw_stats_valid); > + tcf_exts_hw_stats_update(&head->exts, &cls_mall.stats); > } > > static int mall_dump(struct net *net, struct tcf_proto *tp, void *fh, > -- > 1.8.3.1 >
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index cd410a87517b..bf50829d9255 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -294,8 +294,7 @@ static inline void tcf_exts_put_net(struct tcf_exts *exts) static inline void tcf_exts_hw_stats_update(const struct tcf_exts *exts, - u64 bytes, u64 packets, u64 drops, u64 lastuse, - u8 used_hw_stats, bool used_hw_stats_valid) + struct flow_stats *stats) { #ifdef CONFIG_NET_CLS_ACT int i; @@ -306,12 +305,12 @@ static inline void tcf_exts_put_net(struct tcf_exts *exts) /* if stats from hw, just skip */ if (tcf_action_update_hw_stats(a)) { preempt_disable(); - tcf_action_stats_update(a, bytes, packets, drops, - lastuse, true); + tcf_action_stats_update(a, stats->bytes, stats->pkts, stats->drops, + stats->lastused, true); preempt_enable(); - a->used_hw_stats = used_hw_stats; - a->used_hw_stats_valid = used_hw_stats_valid; + a->used_hw_stats = stats->used_hw_stats; + a->used_hw_stats_valid = stats->used_hw_stats_valid; } } #endif diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 0b15698b3531..cb04739a13ce 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -502,12 +502,7 @@ static void fl_hw_update_stats(struct tcf_proto *tp, struct cls_fl_filter *f, tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, rtnl_held); - tcf_exts_hw_stats_update(&f->exts, cls_flower.stats.bytes, - cls_flower.stats.pkts, - cls_flower.stats.drops, - cls_flower.stats.lastused, - cls_flower.stats.used_hw_stats, - cls_flower.stats.used_hw_stats_valid); + tcf_exts_hw_stats_update(&f->exts, &cls_flower.stats); } static void __fl_put(struct cls_fl_filter *f) diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c index 705f63da2c21..b3883d3d4dbd 100644 --- a/net/sched/cls_matchall.c +++ b/net/sched/cls_matchall.c @@ -331,11 +331,7 @@ static void mall_stats_hw_filter(struct tcf_proto *tp, tc_setup_cb_call(block, TC_SETUP_CLSMATCHALL, &cls_mall, false, true); - tcf_exts_hw_stats_update(&head->exts, cls_mall.stats.bytes, - cls_mall.stats.pkts, cls_mall.stats.drops, - cls_mall.stats.lastused, - cls_mall.stats.used_hw_stats, - cls_mall.stats.used_hw_stats_valid); + tcf_exts_hw_stats_update(&head->exts, &cls_mall.stats); } static int mall_dump(struct net *net, struct tcf_proto *tp, void *fh,