linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL rcu/next] RCU commits for 4.2
@ 2015-05-31  4:48 Paul E. McKenney
  2015-06-02  6:31 ` Ingo Molnar
  0 siblings, 1 reply; 3+ messages in thread
From: Paul E. McKenney @ 2015-05-31  4:48 UTC (permalink / raw)
  To: mingo
  Cc: linux-kernel, will.deacon, milos, joe, pdaly,
	nicolas.iooss_linux, hofrat, ying.xue, paul.gortmaker,
	bobby.prani, alexey.kodanev

Hello, Ingo,

The changes in this series include the following:

1.	Remove all uses of RCU-protected array indexes.  These were posted
	to LKML at https://lkml.org/lkml/2015/5/12/827.

2.	Documentation updates.  These were posted to LKML at
	https://lkml.org/lkml/2015/5/12/848.

3.	Miscellaneous fixes.  These were posted to LKML at
	https://lkml.org/lkml/2015/5/12/876.

4.	CPU-hotplug updates.  These were posted to LKML at
	https://lkml.org/lkml/2015/5/12/880.

5.	Initialization/Kconfig updates.  These were posted to LKML at
	https://lkml.org/lkml/2015/5/12/918, however, the updates to
	Tree RCU's initialization have been deferred to 4.3.

6.	Updates to Tiny RCU.  These were posted to LKML at
	https://lkml.org/lkml/2015/5/12/957.

7.	Torture-testing updates.  These were posted to LKML at
	https://lkml.org/lkml/2015/5/12/964.

All of these changes have been subjected to -next testing, and are
available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo

for you to fetch changes up to 0868aa22167d93dd974c253d259c3e6fd47a16c8:

  Merge branches 'array.2015.05.27a', 'doc.2015.05.27a', 'fixes.2015.05.27a', 'hotplug.2015.05.27a', 'init.2015.05.27a', 'tiny.2015.05.27a' and 'torture.2015.05.27a' into HEAD (2015-05-27 13:00:49 -0700)

----------------------------------------------------------------

Alexey Kodanev (1):
      locktorture: fix deadlock in 'rw_lock_irq' type

Joe Perches (1):
      rcu: tree_plugin: Use bool function return values of true/false not 1/0

Milos Vyletel (1):
      documentation: State that rcu_dereference() reloads pointer

Nicholas Mc Guire (1):
      rcu: Change function declaration to bool

Nicolas Iooss (1):
      rcu: Make rcu_*_data variables static

Patrick Daly (1):
      rcu: Fix missing task information during rcu-preempt stall

Paul E. McKenney (51):
      rcu: Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE()
      mce: Stop using array-index-based RCU primitives
      rcu: Eliminate array-index-based RCU primitives
      documentation: RCU-protected array indexes no longer supported
      mce: mce_chrdev_write() can be static
      documentation: Update rcu_dereference.txt based on WG21 discussions
      rcu: Convert from rcu_preempt_state to *rcu_state_p
      rcu: Eliminate a few RCU_BOOST #ifdefs in favor of IS_ENABLED()
      rcu: Tell the compiler that rcu_state_p is immutable
      rcu: Create an immutable rcu_data_p pointer to default rcu_data structure
      rcu: Eliminate a few CONFIG_RCU_NOCB_CPU_ALL #ifdefs
      rcu: Force wakeup of rcu_gp_kthread at grace-period end
      powerpc: Fix smp_mb__before_spinlock()
      rcu: Add more debug info on "kthread starved" RCU CPU stall warnings
      smp: Make control dependencies work on Alpha, improve documentation
      rcu: Make synchronize_sched_expedited() call wait_rcu_gp()
      rcu: Eliminate HOTPLUG_CPU #ifdef in favor of IS_ENABLED()
      rcu: Adjust ->lock acquisition for tasks no longer migrating
      rcu: Remove dead code from force_qs_rnp()
      rcu: Remove redundant offline check
      rcu: Correctly initialize ->rcu_qs_ctr_snap at online time
      cpu: Handle smpboot_unpark_threads() uniformly
      rcu: Modulate grace-period slow init to normalize delay
      rcu: Shut up spurious gcc uninitialized-variable warning
      rcu: Provide diagnostic option to slow down grace-period scans
      rcu: Directly drive TASKS_RCU from Kconfig
      rcu: Directly drive RCU_USER_QS from Kconfig
      rcu: Convert CONFIG_RCU_FANOUT_EXACT to boot parameter
      rcu: Enable diagnostic dump of rcu_node combining tree
      rcu: Create RCU_EXPERT Kconfig and hide booleans behind it
      rcu: Break dependency of RCU_FANOUT_LEAF on RCU_FANOUT
      rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT
      rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF
      rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO
      rcu: Conditionally compile RCU's eqs warnings
      rcu: Further shrink Tiny RCU by making empty functions static inlines
      rcutorture: Test both RCU-sched and RCU-bh for Tiny RCU
      rcu: Correctly handle non-empty Tiny RCU callback list with none ready
      rcutorture: Exchange TREE03 and TREE04 geometries
      rcutorture: Exchange TREE03 and TREE08 NR_CPUS, speed up CPU hotplug
      rcutorture: Allow negative values of nreaders to oversubscribe
      locktorture: Change longdelay_us to longdelay_ms
      rcutorture: Replace barriers with smp_store_release() and smp_load_acquire()
      rcutorture: Test SRCU cleanup code path
      rcutorture: TASKS_RCU set directly, so don't explicitly set it
      rcutorture: Update configuration fragments for rcutree.rcu_fanout_exact
      rcutorture: Make rcutorture scripts force RCU_EXPERT
      rcutorture: Update TREE_RCU-kconfig.txt
      rcutorture: Display "make oldconfig" errors
      rcutorture: Allow repetition factors in Kconfig-fragment lists
      Merge branches 'array.2015.05.27a', 'doc.2015.05.27a', 'fixes.2015.05.27a', 'hotplug.2015.05.27a', 'init.2015.05.27a', 'tiny.2015.05.27a' and 'torture.2015.05.27a' into HEAD

Paul Gortmaker (1):
      cpu: Remove new instance of __cpuinit that crept back in

Pranith Kumar (1):
      rcu: Remove prompt for RCU implementation

Will Deacon (1):
      documentation: memory-barriers: Fix smp_mb__before_spinlock() semantics

Ying Xue (1):
      rculist: Fix another sparse warning

 Documentation/RCU/arrayRCU.txt                     |  20 +-
 Documentation/RCU/lockdep.txt                      |  10 -
 Documentation/RCU/rcu_dereference.txt              |  38 +--
 Documentation/RCU/whatisRCU.txt                    |   6 +-
 Documentation/kernel-parameters.txt                |  33 +-
 Documentation/memory-barriers.txt                  |  62 ++--
 arch/powerpc/include/asm/barrier.h                 |   1 +
 arch/x86/kernel/cpu/mcheck/mce.c                   |  15 +-
 include/linux/compiler.h                           |  16 +
 include/linux/rculist.h                            |  10 +-
 include/linux/rcupdate.h                           |  70 +---
 include/linux/rcutiny.h                            |  16 +
 include/linux/rcutree.h                            |   7 +-
 include/linux/spinlock.h                           |   2 +-
 init/Kconfig                                       |  72 ++--
 kernel/cpu.c                                       |   4 +-
 kernel/events/ring_buffer.c                        |   2 +-
 kernel/locking/locktorture.c                       |  14 +-
 kernel/rcu/rcutorture.c                            | 103 ++++--
 kernel/rcu/srcu.c                                  |  10 +-
 kernel/rcu/tiny.c                                  |  38 +--
 kernel/rcu/tiny_plugin.h                           |  12 +-
 kernel/rcu/tree.c                                  | 365 ++++++++++++---------
 kernel/rcu/tree.h                                  |  35 +-
 kernel/rcu/tree_plugin.h                           | 216 ++++++------
 kernel/rcu/tree_trace.c                            |   6 +-
 kernel/rcu/update.c                                |  30 +-
 kernel/torture.c                                   |  26 +-
 lib/Kconfig.debug                                  |  66 +++-
 .../testing/selftests/rcutorture/bin/configinit.sh |   2 +-
 .../selftests/rcutorture/bin/kvm-recheck.sh        |   4 +
 tools/testing/selftests/rcutorture/bin/kvm.sh      |  25 +-
 .../selftests/rcutorture/configs/rcu/CFcommon      |   2 +
 .../selftests/rcutorture/configs/rcu/SRCU-N        |   1 +
 .../selftests/rcutorture/configs/rcu/SRCU-P        |   1 +
 .../selftests/rcutorture/configs/rcu/SRCU-P.boot   |   2 +-
 .../selftests/rcutorture/configs/rcu/TASKS01       |   5 +-
 .../selftests/rcutorture/configs/rcu/TASKS02       |   1 -
 .../selftests/rcutorture/configs/rcu/TASKS03       |   2 +-
 .../selftests/rcutorture/configs/rcu/TINY02        |   2 +-
 .../selftests/rcutorture/configs/rcu/TINY02.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TREE01        |   1 +
 .../selftests/rcutorture/configs/rcu/TREE02        |   2 +-
 .../selftests/rcutorture/configs/rcu/TREE02-T      |   1 -
 .../selftests/rcutorture/configs/rcu/TREE03        |   8 +-
 .../selftests/rcutorture/configs/rcu/TREE03.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TREE04        |   8 +-
 .../selftests/rcutorture/configs/rcu/TREE05        |   4 +-
 .../selftests/rcutorture/configs/rcu/TREE06        |   4 +-
 .../selftests/rcutorture/configs/rcu/TREE06.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TREE07        |   4 +-
 .../selftests/rcutorture/configs/rcu/TREE08        |   6 +-
 .../selftests/rcutorture/configs/rcu/TREE08-T      |   1 -
 .../selftests/rcutorture/configs/rcu/TREE08-T.boot |   1 +
 .../selftests/rcutorture/configs/rcu/TREE08.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TREE09        |   1 +
 .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt  |  36 +-
 57 files changed, 809 insertions(+), 624 deletions(-)
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE08-T.boot


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL rcu/next] RCU commits for 4.2
  2015-05-31  4:48 [GIT PULL rcu/next] RCU commits for 4.2 Paul E. McKenney
@ 2015-06-02  6:31 ` Ingo Molnar
  2015-06-02 12:36   ` Paul E. McKenney
  0 siblings, 1 reply; 3+ messages in thread
From: Ingo Molnar @ 2015-06-02  6:31 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: linux-kernel, will.deacon, milos, joe, pdaly,
	nicolas.iooss_linux, hofrat, ying.xue, paul.gortmaker,
	bobby.prani, alexey.kodanev


* Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:

> Hello, Ingo,
> 
> The changes in this series include the following:
> 
> 1.	Remove all uses of RCU-protected array indexes.  These were posted
> 	to LKML at https://lkml.org/lkml/2015/5/12/827.
> 
> 2.	Documentation updates.  These were posted to LKML at
> 	https://lkml.org/lkml/2015/5/12/848.
> 
> 3.	Miscellaneous fixes.  These were posted to LKML at
> 	https://lkml.org/lkml/2015/5/12/876.
> 
> 4.	CPU-hotplug updates.  These were posted to LKML at
> 	https://lkml.org/lkml/2015/5/12/880.
> 
> 5.	Initialization/Kconfig updates.  These were posted to LKML at
> 	https://lkml.org/lkml/2015/5/12/918, however, the updates to
> 	Tree RCU's initialization have been deferred to 4.3.
> 
> 6.	Updates to Tiny RCU.  These were posted to LKML at
> 	https://lkml.org/lkml/2015/5/12/957.
> 
> 7.	Torture-testing updates.  These were posted to LKML at
> 	https://lkml.org/lkml/2015/5/12/964.
> 
> All of these changes have been subjected to -next testing, and are
> available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo
> 
> for you to fetch changes up to 0868aa22167d93dd974c253d259c3e6fd47a16c8:
> 
>   Merge branches 'array.2015.05.27a', 'doc.2015.05.27a', 'fixes.2015.05.27a', 'hotplug.2015.05.27a', 'init.2015.05.27a', 'tiny.2015.05.27a' and 'torture.2015.05.27a' into HEAD (2015-05-27 13:00:49 -0700)
> 
> ----------------------------------------------------------------
> 
> Alexey Kodanev (1):
>       locktorture: fix deadlock in 'rw_lock_irq' type
> 
> Joe Perches (1):
>       rcu: tree_plugin: Use bool function return values of true/false not 1/0
> 
> Milos Vyletel (1):
>       documentation: State that rcu_dereference() reloads pointer
> 
> Nicholas Mc Guire (1):
>       rcu: Change function declaration to bool
> 
> Nicolas Iooss (1):
>       rcu: Make rcu_*_data variables static
> 
> Patrick Daly (1):
>       rcu: Fix missing task information during rcu-preempt stall
> 
> Paul E. McKenney (51):
>       rcu: Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE()
>       mce: Stop using array-index-based RCU primitives
>       rcu: Eliminate array-index-based RCU primitives
>       documentation: RCU-protected array indexes no longer supported
>       mce: mce_chrdev_write() can be static
>       documentation: Update rcu_dereference.txt based on WG21 discussions
>       rcu: Convert from rcu_preempt_state to *rcu_state_p
>       rcu: Eliminate a few RCU_BOOST #ifdefs in favor of IS_ENABLED()
>       rcu: Tell the compiler that rcu_state_p is immutable
>       rcu: Create an immutable rcu_data_p pointer to default rcu_data structure
>       rcu: Eliminate a few CONFIG_RCU_NOCB_CPU_ALL #ifdefs
>       rcu: Force wakeup of rcu_gp_kthread at grace-period end
>       powerpc: Fix smp_mb__before_spinlock()
>       rcu: Add more debug info on "kthread starved" RCU CPU stall warnings
>       smp: Make control dependencies work on Alpha, improve documentation
>       rcu: Make synchronize_sched_expedited() call wait_rcu_gp()
>       rcu: Eliminate HOTPLUG_CPU #ifdef in favor of IS_ENABLED()
>       rcu: Adjust ->lock acquisition for tasks no longer migrating
>       rcu: Remove dead code from force_qs_rnp()
>       rcu: Remove redundant offline check
>       rcu: Correctly initialize ->rcu_qs_ctr_snap at online time
>       cpu: Handle smpboot_unpark_threads() uniformly
>       rcu: Modulate grace-period slow init to normalize delay
>       rcu: Shut up spurious gcc uninitialized-variable warning
>       rcu: Provide diagnostic option to slow down grace-period scans
>       rcu: Directly drive TASKS_RCU from Kconfig
>       rcu: Directly drive RCU_USER_QS from Kconfig
>       rcu: Convert CONFIG_RCU_FANOUT_EXACT to boot parameter
>       rcu: Enable diagnostic dump of rcu_node combining tree
>       rcu: Create RCU_EXPERT Kconfig and hide booleans behind it
>       rcu: Break dependency of RCU_FANOUT_LEAF on RCU_FANOUT
>       rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT
>       rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF
>       rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO
>       rcu: Conditionally compile RCU's eqs warnings
>       rcu: Further shrink Tiny RCU by making empty functions static inlines
>       rcutorture: Test both RCU-sched and RCU-bh for Tiny RCU
>       rcu: Correctly handle non-empty Tiny RCU callback list with none ready
>       rcutorture: Exchange TREE03 and TREE04 geometries
>       rcutorture: Exchange TREE03 and TREE08 NR_CPUS, speed up CPU hotplug
>       rcutorture: Allow negative values of nreaders to oversubscribe
>       locktorture: Change longdelay_us to longdelay_ms
>       rcutorture: Replace barriers with smp_store_release() and smp_load_acquire()
>       rcutorture: Test SRCU cleanup code path
>       rcutorture: TASKS_RCU set directly, so don't explicitly set it
>       rcutorture: Update configuration fragments for rcutree.rcu_fanout_exact
>       rcutorture: Make rcutorture scripts force RCU_EXPERT
>       rcutorture: Update TREE_RCU-kconfig.txt
>       rcutorture: Display "make oldconfig" errors
>       rcutorture: Allow repetition factors in Kconfig-fragment lists
>       Merge branches 'array.2015.05.27a', 'doc.2015.05.27a', 'fixes.2015.05.27a', 'hotplug.2015.05.27a', 'init.2015.05.27a', 'tiny.2015.05.27a' and 'torture.2015.05.27a' into HEAD
> 
> Paul Gortmaker (1):
>       cpu: Remove new instance of __cpuinit that crept back in
> 
> Pranith Kumar (1):
>       rcu: Remove prompt for RCU implementation
> 
> Will Deacon (1):
>       documentation: memory-barriers: Fix smp_mb__before_spinlock() semantics
> 
> Ying Xue (1):
>       rculist: Fix another sparse warning
> 
>  Documentation/RCU/arrayRCU.txt                     |  20 +-
>  Documentation/RCU/lockdep.txt                      |  10 -
>  Documentation/RCU/rcu_dereference.txt              |  38 +--
>  Documentation/RCU/whatisRCU.txt                    |   6 +-
>  Documentation/kernel-parameters.txt                |  33 +-
>  Documentation/memory-barriers.txt                  |  62 ++--
>  arch/powerpc/include/asm/barrier.h                 |   1 +
>  arch/x86/kernel/cpu/mcheck/mce.c                   |  15 +-
>  include/linux/compiler.h                           |  16 +
>  include/linux/rculist.h                            |  10 +-
>  include/linux/rcupdate.h                           |  70 +---
>  include/linux/rcutiny.h                            |  16 +
>  include/linux/rcutree.h                            |   7 +-
>  include/linux/spinlock.h                           |   2 +-
>  init/Kconfig                                       |  72 ++--
>  kernel/cpu.c                                       |   4 +-
>  kernel/events/ring_buffer.c                        |   2 +-
>  kernel/locking/locktorture.c                       |  14 +-
>  kernel/rcu/rcutorture.c                            | 103 ++++--
>  kernel/rcu/srcu.c                                  |  10 +-
>  kernel/rcu/tiny.c                                  |  38 +--
>  kernel/rcu/tiny_plugin.h                           |  12 +-
>  kernel/rcu/tree.c                                  | 365 ++++++++++++---------
>  kernel/rcu/tree.h                                  |  35 +-
>  kernel/rcu/tree_plugin.h                           | 216 ++++++------
>  kernel/rcu/tree_trace.c                            |   6 +-
>  kernel/rcu/update.c                                |  30 +-
>  kernel/torture.c                                   |  26 +-
>  lib/Kconfig.debug                                  |  66 +++-
>  .../testing/selftests/rcutorture/bin/configinit.sh |   2 +-
>  .../selftests/rcutorture/bin/kvm-recheck.sh        |   4 +
>  tools/testing/selftests/rcutorture/bin/kvm.sh      |  25 +-
>  .../selftests/rcutorture/configs/rcu/CFcommon      |   2 +
>  .../selftests/rcutorture/configs/rcu/SRCU-N        |   1 +
>  .../selftests/rcutorture/configs/rcu/SRCU-P        |   1 +
>  .../selftests/rcutorture/configs/rcu/SRCU-P.boot   |   2 +-
>  .../selftests/rcutorture/configs/rcu/TASKS01       |   5 +-
>  .../selftests/rcutorture/configs/rcu/TASKS02       |   1 -
>  .../selftests/rcutorture/configs/rcu/TASKS03       |   2 +-
>  .../selftests/rcutorture/configs/rcu/TINY02        |   2 +-
>  .../selftests/rcutorture/configs/rcu/TINY02.boot   |   1 +
>  .../selftests/rcutorture/configs/rcu/TREE01        |   1 +
>  .../selftests/rcutorture/configs/rcu/TREE02        |   2 +-
>  .../selftests/rcutorture/configs/rcu/TREE02-T      |   1 -
>  .../selftests/rcutorture/configs/rcu/TREE03        |   8 +-
>  .../selftests/rcutorture/configs/rcu/TREE03.boot   |   1 +
>  .../selftests/rcutorture/configs/rcu/TREE04        |   8 +-
>  .../selftests/rcutorture/configs/rcu/TREE05        |   4 +-
>  .../selftests/rcutorture/configs/rcu/TREE06        |   4 +-
>  .../selftests/rcutorture/configs/rcu/TREE06.boot   |   1 +
>  .../selftests/rcutorture/configs/rcu/TREE07        |   4 +-
>  .../selftests/rcutorture/configs/rcu/TREE08        |   6 +-
>  .../selftests/rcutorture/configs/rcu/TREE08-T      |   1 -
>  .../selftests/rcutorture/configs/rcu/TREE08-T.boot |   1 +
>  .../selftests/rcutorture/configs/rcu/TREE08.boot   |   1 +
>  .../selftests/rcutorture/configs/rcu/TREE09        |   1 +
>  .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt  |  36 +-
>  57 files changed, 809 insertions(+), 624 deletions(-)
>  create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot
>  create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE08-T.boot

Pulled, thanks a lot Paul!

I am wondering about the following small detail. You have reworked the whole RCU 
Kconfig machinery with the introduction of RCU_EXPERT and smart selection of 
defaults. (very nice!)

There's a single interactive option left when a user configures RCU 'anew' and 
keeps CONFIG_RCU_EXPERT disabled:

      Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW)

I'm wondering whether we could put this behind CONFIG_RCU_EXPERT as well, and 
disable it by default? 

The argument for this is very simple IMHO: NO_HZ_FULL depends on nocb_cpu support, 
and actually selects it, so there's no way to misconfigure it.

Without NO_HZ_FULL it might still make sense to use nocb_cpu, but it's very much 
an advanced, expert option.

With this change we could make RCU essentially configuration free in the common 
case! :-)

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL rcu/next] RCU commits for 4.2
  2015-06-02  6:31 ` Ingo Molnar
@ 2015-06-02 12:36   ` Paul E. McKenney
  0 siblings, 0 replies; 3+ messages in thread
From: Paul E. McKenney @ 2015-06-02 12:36 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, will.deacon, milos, joe, pdaly,
	nicolas.iooss_linux, hofrat, ying.xue, paul.gortmaker,
	bobby.prani, alexey.kodanev

On Tue, Jun 02, 2015 at 08:31:53AM +0200, Ingo Molnar wrote:
> * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> 
> > Hello, Ingo,
> > 
> > The changes in this series include the following:
> > 
> > 1.	Remove all uses of RCU-protected array indexes.  These were posted
> > 	to LKML at https://lkml.org/lkml/2015/5/12/827.
> > 
> > 2.	Documentation updates.  These were posted to LKML at
> > 	https://lkml.org/lkml/2015/5/12/848.
> > 
> > 3.	Miscellaneous fixes.  These were posted to LKML at
> > 	https://lkml.org/lkml/2015/5/12/876.
> > 
> > 4.	CPU-hotplug updates.  These were posted to LKML at
> > 	https://lkml.org/lkml/2015/5/12/880.
> > 
> > 5.	Initialization/Kconfig updates.  These were posted to LKML at
> > 	https://lkml.org/lkml/2015/5/12/918, however, the updates to
> > 	Tree RCU's initialization have been deferred to 4.3.
> > 
> > 6.	Updates to Tiny RCU.  These were posted to LKML at
> > 	https://lkml.org/lkml/2015/5/12/957.
> > 
> > 7.	Torture-testing updates.  These were posted to LKML at
> > 	https://lkml.org/lkml/2015/5/12/964.

[ . . . ]

> Pulled, thanks a lot Paul!
> 
> I am wondering about the following small detail. You have reworked the whole RCU 
> Kconfig machinery with the introduction of RCU_EXPERT and smart selection of 
> defaults. (very nice!)
> 
> There's a single interactive option left when a user configures RCU 'anew' and 
> keeps CONFIG_RCU_EXPERT disabled:
> 
>       Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW)
> 
> I'm wondering whether we could put this behind CONFIG_RCU_EXPERT as well, and 
> disable it by default? 
> 
> The argument for this is very simple IMHO: NO_HZ_FULL depends on nocb_cpu support, 
> and actually selects it, so there's no way to misconfigure it.
> 
> Without NO_HZ_FULL it might still make sense to use nocb_cpu, but it's very much 
> an advanced, expert option.
> 
> With this change we could make RCU essentially configuration free in the common 
> case! :-)

And the -rt folks could presumably add a select clause as well, where
needed.  And I cannot recall a specific reason for not doing so.  I have
queued the following patch, so let's see how it goes.  ;-)

							Thanx, Paul

------------------------------------------------------------------------

    rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT
    
    This commit prevents Kconfig from asking the user about RCU_NOCB_CPU
    unless the user really wants to be asked.
    
    Reported-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Thomas Gleixner <tglx@linutronix.de>

diff --git a/init/Kconfig b/init/Kconfig
index 5b8726c10685..67a0156fa091 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -697,6 +697,7 @@ config RCU_BOOST_DELAY
 config RCU_NOCB_CPU
 	bool "Offload RCU callback processing from boot-selected CPUs"
 	depends on TREE_RCU || PREEMPT_RCU
+	depends on RCU_EXPERT
 	default n
 	help
 	  Use this option to reduce OS jitter for aggressive HPC or


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-06-02 12:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-31  4:48 [GIT PULL rcu/next] RCU commits for 4.2 Paul E. McKenney
2015-06-02  6:31 ` Ingo Molnar
2015-06-02 12:36   ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).