Hi,

This is the second attempt to make rcu-nocb mutable at runtime. See
v1 there: https://lwn.net/Articles/820544/

This time a new approach, as per Paul's suggestion, is to ensure that
callbacks are still served locally until nocb kthreads are fully ready
or fully asleep. This is using a state machine implemented with a mask
(see patch 3/12 for details).

There is still some small polishing to do, as can be seen in the last
patches, to make sure that local callbacks processing is correctly
handled outside of strict softirq (or rcuc) mode.

Thanks.

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
        rcu/nocb

HEAD: 6abe8408307eaeb03b4a0470945943c1decbc4b3

Thanks,
        Frederic
---

Frederic Weisbecker (12):
      rcu: Implement rcu_segcblist_is_offloaded() config dependent
      rcu: Turn enabled/offload states into a common flag
      rcu: Provide basic callback offloading state machine bits
      rcu: De-offloading CB kthread
      rcu: De-offloading GP kthread
      rcu: Re-offload support
      rcu: Shutdown nocb timer on de-offloading
      rcu: Flush bypass before setting SEGCBLIST_SOFTIRQ_ONLY
      rcu: Set SEGCBLIST_SOFTIRQ_ONLY at the very last stage of de-offloading
      rcu: Process batch locally as long as offloading isn't complete
      rcu: Locally accelerate callbacks as long as offloading isn't complete
      rcu: Nocb (de)activate through sysfs


 include/linux/rcu_segcblist.h | 119 ++++++++++++++++-
 include/linux/rcupdate.h      |   4 +
 kernel/cpu.c                  |  23 ++++
 kernel/rcu/rcu_segcblist.c    |  13 +-
 kernel/rcu/rcu_segcblist.h    |  45 ++++++-
 kernel/rcu/tree.c             |  32 ++---
 kernel/rcu/tree.h             |   2 +
 kernel/rcu/tree_plugin.h      | 297 +++++++++++++++++++++++++++++++++++++++---
 8 files changed, 491 insertions(+), 44 deletions(-)

Reply via email to