On Tue, Aug 30, 2022 at 04:43:43AM -0700, Paul E. McKenney wrote: > On Tue, Aug 30, 2022 at 12:53:24PM +0200, Frederic Weisbecker wrote: > > On Mon, Aug 29, 2022 at 01:42:02PM -0700, Paul E. McKenney wrote: > > > On Mon, Aug 29, 2022 at 04:36:40PM -0400, Joel Fernandes wrote: > > > > On Mon, Aug 29, 2022 at 3:46 PM Frederic Weisbecker <frederic@xxxxxxxxxx> wrote: > > > > > On Mon, Aug 29, 2022 at 12:45:40PM -0400, Joel Fernandes wrote: > > > > > > On 8/29/2022 9:40 AM, Frederic Weisbecker wrote: > > > > > > [ . . . ] > > > > > > > > > > 2) NOCB implies performance issues. > > > > > > > > > > > > Which kinds of? There is slightly worse boot times, but I'm guessing that's do > > > > > > with the extra scheduling overhead of the extra threads which is usually not a > > > > > > problem except that RCU is used in the critical path of boot up (on ChromeOS). > > > > > > > > > > I never measured it myself but executing callbacks on another CPUs, with > > > > > context switches and locking can only involve significant performance issues if callbacks > > > > > are frequent. So it's a tradeoff between power and performance. > > > > > > > > In my testing of benchmarks on real systems with 8-16 CPUs, the > > > > performance hit is down in the noise. It is possible though that maybe > > > > one can write a non-realistic synthetic test to force the performance > > > > issues, but I've not seen it in the real world. Maybe on > > > > networking-heavy servers with lots of cores, you'll see it but their > > > > batteries if any would be pretty big :-). > > > > > > To Frederic's point, if you have enough servers, even a 1% decrease in > > > power consumption is a very big deal. ;-) > > > > The world has enough servers, for that matters ;-) > > True enough! Now you need only demonstrate that call_rcu_lazy() for > !rcu_nocbs servers would actually deliver that 1%. ;-) Well, !rcu_nocbs is not only used by server but also by pretty much everything else, except android IIUC. I can't really measure the whole world but I don't see how the idleness of a server/router/desktop/embedded/rt/hpc device differs from the idleness of an android device. But ok I'll try to measure that.