net: openvswitch: make masks cache size configurable
This patch makes the masks cache size configurable, or with a size of 0, disable it. Reviewed-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> Signed-off-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
9d2f627b7e
commit
9bf24f594c
@@ -27,6 +27,12 @@ struct mask_cache_entry {
|
||||
u32 mask_index;
|
||||
};
|
||||
|
||||
struct mask_cache {
|
||||
struct rcu_head rcu;
|
||||
u32 cache_size; /* Must be ^2 value. */
|
||||
struct mask_cache_entry __percpu *mask_cache;
|
||||
};
|
||||
|
||||
struct mask_count {
|
||||
int index;
|
||||
u64 counter;
|
||||
@@ -53,7 +59,7 @@ struct table_instance {
|
||||
struct flow_table {
|
||||
struct table_instance __rcu *ti;
|
||||
struct table_instance __rcu *ufid_ti;
|
||||
struct mask_cache_entry __percpu *mask_cache;
|
||||
struct mask_cache __rcu *mask_cache;
|
||||
struct mask_array __rcu *mask_array;
|
||||
unsigned long last_rehash;
|
||||
unsigned int count;
|
||||
@@ -77,6 +83,8 @@ int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
|
||||
const struct sw_flow_mask *mask);
|
||||
void ovs_flow_tbl_remove(struct flow_table *table, struct sw_flow *flow);
|
||||
int ovs_flow_tbl_num_masks(const struct flow_table *table);
|
||||
u32 ovs_flow_tbl_masks_cache_size(const struct flow_table *table);
|
||||
int ovs_flow_tbl_masks_cache_resize(struct flow_table *table, u32 size);
|
||||
struct sw_flow *ovs_flow_tbl_dump_next(struct table_instance *table,
|
||||
u32 *bucket, u32 *idx);
|
||||
struct sw_flow *ovs_flow_tbl_lookup_stats(struct flow_table *,
|
||||
|
Reference in New Issue
Block a user