On Fri, Nov 15, 2013 at 03:25:00PM -0800, Joe Stringer wrote:
> When profiling CPU usage in situations involving high numbers of ports,
> coverage_clear() was highlighted as a commonly called function. It
> appears that it can be quite expensive to access all of the per-thread
> coverage counters when threads are constantly waking up.
> 
> This patch makes each thread only do coverage_clear() logic roughly once
> per second by introducing per-thread timers. Upcall handler counters may
> become less accurate, as these threads may sleep without synchronising
> and not wake up for some time. When the main thread is under load at
> ~90% CPU, this drops to ~85%. Upcall handler threads sitting at ~2.5%
> drop to ~1.5%.
> 
> Signed-off-by: Joe Stringer <joestrin...@nicira.com>

Applied, thanks.

> The existing ARP modification slow-path test fails with this patch, as
> the upcall handler goes to sleep before synchronising its per-thread
> counters, and warping the time does not affect handler threads. This
> patch removes the conflicting part of the test. An alternative is to
> introduce a coverage_clear_now() function to be called from the upcall
> handler, if we are not concerned about the performance difference for
> upcall handlers.

For now, I decided to just apply your patch.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to