Message ID | 20200527074420.11232-1-simon.horman@netronome.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] nfp: flower: fix used time of merge flow statistics | expand |
From: Simon Horman <simon.horman@netronome.com> Date: Wed, 27 May 2020 09:44:20 +0200 > From: Heinrich Kuhn <heinrich.kuhn@netronome.com> > > Prior to this change the correct value for the used counter is calculated > but not stored nor, therefore, propagated to user-space. In use-cases such > as OVS use-case at least this results in active flows being removed from > the hardware datapath. Which results in both unnecessary flow tear-down > and setup, and packet processing on the host. > > This patch addresses the problem by saving the calculated used value > which allows the value to propagate to user-space. > > Found by inspection. > > Fixes: aa6ce2ea0c93 ("nfp: flower: support stats update for merge flows") > Signed-off-by: Heinrich Kuhn <heinrich.kuhn@netronome.com> > Signed-off-by: Simon Horman <simon.horman@netronome.com> Applied and queued up for -stable, thanks.
diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c index c694dbc239d0..6b60771ccb19 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/offload.c +++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c @@ -1440,7 +1440,8 @@ __nfp_flower_update_merge_stats(struct nfp_app *app, ctx_id = be32_to_cpu(sub_flow->meta.host_ctx_id); priv->stats[ctx_id].pkts += pkts; priv->stats[ctx_id].bytes += bytes; - max_t(u64, priv->stats[ctx_id].used, used); + priv->stats[ctx_id].used = max_t(u64, used, + priv->stats[ctx_id].used); } }