From: Ingo Molnar Date: Fri, 12 Feb 2021 11:50:09 +0000 (+0100) Subject: Merge branch 'for-mingo-rcu' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck... X-Git-Tag: accepted/tizen/unified/20230118.172025~7851^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=85e853c5ec8486117182baab10c98b321daa6d47;p=platform%2Fkernel%2Flinux-rpi.git Merge branch 'for-mingo-rcu' of git://git./linux/kernel/git/paulmck/linux-rcu into core/rcu Pull RCU updates from Paul E. McKenney: - Documentation updates. - Miscellaneous fixes. - kfree_rcu() updates: Addition of mem_dump_obj() to provide allocator return addresses to more easily locate bugs. This has a couple of RCU-related commits, but is mostly MM. Was pulled in with akpm's agreement. - Per-callback-batch tracking of numbers of callbacks, which enables better debugging information and smarter reactions to large numbers of callbacks. - The first round of changes to allow CPUs to be runtime switched from and to callback-offloaded state. - CONFIG_PREEMPT_RT-related changes. - RCU CPU stall warning updates. - Addition of polling grace-period APIs for SRCU. - Torture-test and torture-test scripting updates, including a "torture everything" script that runs rcutorture, locktorture, scftorture, rcuscale, and refscale. Plus does an allmodconfig build. Signed-off-by: Ingo Molnar --- 85e853c5ec8486117182baab10c98b321daa6d47 diff --cc Documentation/RCU/Design/Requirements/Requirements.rst index d4c9a01,0da9133..38a3947 --- a/Documentation/RCU/Design/Requirements/Requirements.rst +++ b/Documentation/RCU/Design/Requirements/Requirements.rst @@@ -1182,11 -1181,11 +1181,11 @@@ and has become decreasingly so as memor costs have plummeted. However, as I learned from Matt Mackall's `bloatwatch `__ efforts, memory footprint is critically important on single-CPU systems with - non-preemptible (``CONFIG_PREEMPT=n``) kernels, and thus `tiny - RCU `__ + non-preemptible (``CONFIG_PREEMPTION=n``) kernels, and thus `tiny + RCU `__ was born. Josh Triplett has since taken over the small-memory banner with his `Linux kernel tinification `__ -project, which resulted in `SRCU <#Sleepable%20RCU>`__ becoming optional +project, which resulted in `SRCU `__ becoming optional for those kernels not needing it. The remaining performance requirements are, for the most part, @@@ -1457,10 -1456,10 +1456,10 @@@ will vary as the value of ``HZ`` varies the relevant Kconfig options and kernel boot parameters. RCU currently does not do much sanity checking of these parameters, so please use caution when changing them. Note that these forward-progress measures -are provided only for RCU, not for `SRCU <#Sleepable%20RCU>`__ or `Tasks -RCU <#Tasks%20RCU>`__. +are provided only for RCU, not for `SRCU `__ or `Tasks +RCU`_. - RCU takes the following steps in ``call_rcu()`` to encourage timely + RCU takes the following steps in call_rcu() to encourage timely invocation of callbacks when any given non-\ ``rcu_nocbs`` CPU has 10,000 callbacks, or has 10,000 more callbacks than it had the last time encouragement was provided: @@@ -1477,12 -1476,12 +1476,12 @@@ Again, these are default values when running at ``HZ=1000``, and can be overridden. Again, these forward-progress measures are provided only for -RCU, not for `SRCU <#Sleepable%20RCU>`__ or `Tasks -RCU <#Tasks%20RCU>`__. Even for RCU, callback-invocation forward +RCU, not for `SRCU `__ or `Tasks +RCU`_. Even for RCU, callback-invocation forward progress for ``rcu_nocbs`` CPUs is much less well-developed, in part because workloads benefiting from ``rcu_nocbs`` CPUs tend to invoke - ``call_rcu()`` relatively infrequently. If workloads emerge that need - both ``rcu_nocbs`` CPUs and high ``call_rcu()`` invocation rates, then + call_rcu() relatively infrequently. If workloads emerge that need + both ``rcu_nocbs`` CPUs and high call_rcu() invocation rates, then additional forward-progress work will be required. Composability