Re: rcu: Throttle rcu_try_advance_all_cbs() execution causes visibleslowdown in ftrace switching

From: Paul E. McKenney
Date: Mon Nov 04 2013 - 12:12:12 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/