X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fflow.h;h=270a3240360cd95be37bdce7e1b5f1ce585e75a9;hb=9ac56358dec1a5aa7f4275a42971f55fad1f7f35;hp=c4de0e65833582c749a8c7cd2be57b47d762aef0;hpb=df65fec1171c7c2922ecd37d2d70056bf636b72e;p=sliver-openvswitch.git diff --git a/datapath/flow.h b/datapath/flow.h index c4de0e658..270a32403 100644 --- a/datapath/flow.h +++ b/datapath/flow.h @@ -161,12 +161,18 @@ struct sw_flow { struct rcu_head rcu; struct hlist_node hash_node[2]; u32 hash; - + int stats_last_writer; /* NUMA-node id of the last writer on + * 'stats[0]'. + */ struct sw_flow_key key; struct sw_flow_key unmasked_key; struct sw_flow_mask *mask; struct sw_flow_actions __rcu *sf_acts; - struct flow_stats __percpu *stats; + struct flow_stats __rcu *stats[]; /* One for each NUMA node. First one + * is allocated at flow creation time, + * the rest are allocated on demand + * while holding the 'stats[0].lock'. + */ }; struct arp_eth_header {