From: Eric Dumazet <eric.duma...@gmail.com>
Date: Fri, 19 Aug 2016 12:56:56 -0700
> On Fri, 2016-08-19 at 16:47 -0300, Thadeu Lima de Souza Cascardo wrote:
>> Instead of using flow stats per NUMA node, use it per CPU. When using
>> megaflows, the stats lock can be a bottleneck in scalability.
> 
> ...
> 
>>  
>>      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

Reply via email to