Messages in this thread | | | Date | Mon, 4 Nov 2013 09:02:32 -0800 | From | "Paul E. McKenney" <> | Subject | Re: rcu: Throttle rcu_try_advance_all_cbs() execution causes visible slowdown in ftrace switching |
| |
On Fri, Nov 01, 2013 at 06:19:44PM +0100, Petr Mladek wrote: > Hi, > > I am doing some clean up in x86 ftrace code. I check the performance by > switching between different tracers and by enabling and disabling them. > > The operation has started to be much slower after rebasing on the > kernel tip tree. Bisecting has shown that the difference was caused by > the commit c229828ca6bc62d6c654 (rcu: Throttle > rcu_try_advance_all_cbs() execution) > > The following times are from Intel 2xCore i7-3770 CPU @ 3.40GHz when > calling the attached test script (time ./test-ftrace). It 100x switches > between "function" and "nop" tracer. It also enables and disables the > tracer each time. > > Results with the commit c229828ca6bc62d6c654: > > real 0m49.393s 0m49.632s 0m49.359s > user 0m0.004s 0m0.000s 0m0.004s > sys 0m0.996s 0m0.880s 0m0.892s > > > Results after reverting the commit c229828ca6bc62d6c654: > > real 0m35.320s 0m35.687s 0m35.920s > user 0m0.004s 0m0.004s 0m0.000s > sys 0m1.140s 0m1.208s 0m1.152s > > > I might do some more debugging on Monday. I wonder if you have any > hints or ideas.
Hello, Petr,
This is a slowpath, and that commit did fix a real bug, so I am OK with this modest slowdown.
That said, if you have a workload where this is a problem, please try building with CONFIG_RCU_FAST_NO_HZ=n. The fact that this commit had any effect at all leads me to believe that you used CONFIG_RCU_FAST_NO_HZ=y.
Thanx, Paul
| |