On Mon, Apr 24, 2017 at 07:24:44AM +0200, Mike Galbraith wrote: > On Sun, 2017-04-23 at 20:32 -0700, Paul E. McKenney wrote: > > On Mon, Apr 24, 2017 at 04:48:09AM +0200, Mike Galbraith wrote: > > > Greetings, > > > > > > Running Steven's hotplug stress script in tip w. CLASSIC_SRCU takes 55s > > > in my i4790 box, whereas TREE_SRCU takes over 16m. (Master with the > > > same config does it in 39s.. but then lockdep isn't enabled in master) > > > > That doesn't sound good... > > > > But exactly which version are you using? There were some 8x slowdowns > > earlier this week that have since been fixed. Also, how many CPUs are > > on your system? > > 4 cores+SMT, tip.yesterday_afternoon (precise!) was initial test point, > tip.this_morning (v4.11-rc7-955-g76f8909e1cd8) is still slow.
OK, that is after the earlier fix! And modest in size as well. Assuming 4ms per TREE_SRCU synchronize_srcu(), I end up with the CLASSIC_SRCU doing a synchronize_srcu() every 200us or so, which I am having a hard time believing. But it does matter, because it controls what approach I take to fixing this. Could you please collect an ftrace (or whatever) showing the timestamp sequence of calls to synchronize_srcu(), synchronize_srcu_expedited(), and call_srcu() during the execution of the stress script? If it is easy to do, also the timestamp sequence of returns from synchronize_srcu() and synchronize_srcu_expedited()? Thanx, Paul