Messages in this thread | | | Date | Thu, 27 Apr 2017 08:11:40 +0200 | From | Ingo Molnar <> | Subject | Re: [GIT PULL rcu/urgent] Auto-expedite initial SRCU grace periods |
| |
* Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> Hello, Ingo, > > This series greatly reduces the performance degradation of Tree SRCU > on a CPU-hotplug stress test. The effect was not subtle: Mike Galbraith > measured Classic SRCU at 55 seconds and Tree SRCU at more than 16 -minutes- > for this test. Mike collected ftrace data that showed that Classic SRCU > was auto-expediting invocations of synchronize_srcu() that found SRCU > completely idle. This series therefore adds this auto-expedite capability > to Tree SRCU, bringing the performance shortfall to less than ten seconds, > which is a great improvement over the initial shortfall of 15 minutes. > > I will continue tuning, but this improvement seemed worth a pull request, > in order to get the base solution some more test time in -tip. Note that > two of the commits are not strictly necessary, but they are reasonably > simple, they conflict with the three main commits, and the risk of > disentangling them seemed to greatly exceed the risk of pushing them in. > Of course, if you believe that they really should be delayed, please let > me know and I can disentangle them. They are: (1) c7e88067c1ae ("srcu: > Exact tracking of srcu_data structures containing callbacks") and > (2) 7f6733c3c648 ("srcu: Make rcutorture writer stalls print SRCU GP > state"). > > These commits are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/urgent > > for you to fetch changes up to 22607d66bbc3e81140d3bcf08894f4378eb36428: > > srcu: Specify auto-expedite holdoff time (2017-04-26 16:32:17 -0700) > > ---------------------------------------------------------------- > Paul E. McKenney (5): > srcu: Exact tracking of srcu_data structures containing callbacks > srcu: Make rcutorture writer stalls print SRCU GP state > srcu: Expedited grace periods with reduced memory contention > srcu: Expedite first synchronize_srcu() when idle > srcu: Specify auto-expedite holdoff time > > Documentation/admin-guide/kernel-parameters.txt | 8 + > include/linux/srcuclassic.h | 14 ++ > include/linux/srcutiny.h | 12 ++ > include/linux/srcutree.h | 13 +- > kernel/rcu/rcutorture.c | 8 +- > kernel/rcu/srcutree.c | 242 ++++++++++++++++++++---- > kernel/rcu/tree.c | 12 +- > 7 files changed, 255 insertions(+), 54 deletions(-)
Pulled, thanks a lot Paul!
Ingo
| |