mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
dpif-netdev: Remove support for DPIF_FP_ZERO_STATS flag
Since flow statistics are thread local and updated without any lock, it is not correct to do a memset from another thread. This commit simply removes the support for the flag. It is not needed by ofproto-dpif, it is only exposed by dpctl commands. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
committed by
Ethan Jackson
parent
73c33892ac
commit
97447f55a9
@@ -1842,7 +1842,16 @@ dpif_netdev_flow_put(struct dpif *dpif, const struct dpif_flow_put *put)
|
||||
get_dpif_flow_stats(netdev_flow, put->stats);
|
||||
}
|
||||
if (put->flags & DPIF_FP_ZERO_STATS) {
|
||||
memset(&netdev_flow->stats, 0, sizeof netdev_flow->stats);
|
||||
/* XXX: The userspace datapath uses thread local statistics
|
||||
* (for flows), which should be updated only by the owning
|
||||
* thread. Since we cannot write on stats memory here,
|
||||
* we choose not to support this flag. Please note:
|
||||
* - This feature is currently used only by dpctl commands with
|
||||
* option --clear.
|
||||
* - Should the need arise, this operation can be implemented
|
||||
* by keeping a base value (to be update here) for each
|
||||
* counter, and subtracting it before outputting the stats */
|
||||
error = EOPNOTSUPP;
|
||||
}
|
||||
|
||||
ovsrcu_postpone(dp_netdev_actions_free, old_actions);
|
||||
|
Reference in New Issue
Block a user