Re: [RFC PATCH] openvswitch: use percpu flow stats
From: David Miller <hidden>
Date: 2016-08-20 01:09:53
From: Eric Dumazet <redacted> Date: Fri, 19 Aug 2016 12:56:56 -0700
On Fri, 2016-08-19 at 16:47 -0300, Thadeu Lima de Souza Cascardo wrote:quoted
Instead of using flow stats per NUMA node, use it per CPU. When using megaflows, the stats lock can be a bottleneck in scalability....quoted
flow_cache = kmem_cache_create("sw_flow", sizeof(struct sw_flow) - + (nr_node_ids + + (num_possible_cpus() * sizeof(struct flow_stats *)), 0, 0, NULL); if (flow_cache == NULL)This is bogus. Please use nr_cpu_ids instead of num_possible_cpus().
Then how would hot-plugged cpus be handled properly? The only other way is you'd have to free all objects in the current flow_cache, destroy it, then make a new kmem_cache and reallocate all of the existing objects and hook them back up every time a cpu up event occurs. That doesn't make any sense at all. Therefore, the size of the objects coming out of "sw_flow" have to accomodate all possible cpu indexes. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev