openvswitch: Move mega-flow list out of rehashing struct.

ovs-flow rehash does not touch mega flow list. Following patch
moves it dp struct datapath.  Avoid one extra indirection for
accessing mega-flow list head on every packet receive.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
This commit is contained in:
Pravin B Shelar 2013-10-04 00:14:23 -07:00 committed by Jesse Gross
parent e64457191a
commit b637e4988c
4 changed files with 163 additions and 173 deletions

View file

@ -58,12 +58,11 @@ struct dp_stats_percpu {
* struct datapath - datapath for flow-based packet switching
* @rcu: RCU callback head for deferred destruction.
* @list_node: Element in global 'dps' list.
* @table: Current flow table. Protected by ovs_mutex and RCU.
* @table: flow table.
* @ports: Hash table for ports. %OVSP_LOCAL port always exists. Protected by
* ovs_mutex and RCU.
* @stats_percpu: Per-CPU datapath statistics.
* @net: Reference to net namespace.
* @last_rehash: Timestamp of last rehash.
*
* Context: See the comment on locking at the top of datapath.c for additional
* locking information.
@ -73,7 +72,7 @@ struct datapath {
struct list_head list_node;
/* Flow table. */
struct flow_table __rcu *table;
struct flow_table table;
/* Switch ports. */
struct hlist_head *ports;
@ -85,7 +84,6 @@ struct datapath {
/* Network namespace ref. */
struct net *net;
#endif
unsigned long last_rehash;
};
/**