Re: [GIT PULL rcu/next] RCU commits for 4.18

2018-05-16 Thread Ingo Molnar

* Paul E. McKenney  wrote:

> Hello, Ingo!
> 
> This pull request contains the following changes:
> 
> 1.Updates to the handling of expedited grace periods, perhaps most
>   notably parallelizing their initialization.  Other changes
>   include fixes from Boqun Feng.
> 
>   http://lkml.kernel.org/r/20180423022047.ga20...@linux.vnet.ibm.com
> 
> 2.Miscellaneous fixes.  These include an nvme fix from Nitzan Carmi
>   that I am carrying because it depends on a new SRCU function
>   cleanup_srcu_struct_quiesced().  This branch also includes fixes
>   from Byungchul Park and Yury Norov.  Note that several patches
>   were deferred to the v4.19 merge window due to late location
>   of bugs and late determination of a need for restructuring.
> 
>   http://lkml.kernel.org/r/20180423023150.ga21...@linux.vnet.ibm.com
> 
> 3.Updates to reduce lock contention in the rcu_node combining tree.
>   These are in preparation for the consolidation of RCU-bh,
>   RCU-preempt, and RCU-sched into a single flavor, which was
>   requested by Linus Torvalds in response to a security flaw
>   whose root cause included confusion between the multiple flavors
>   of RCU.  There will be another series of contention-reduction
>   patches in the next merge window, hopefully accompanied by the
>   consolidation itself.
> 
>   http://lkml.kernel.org/r/20180423030258.ga23...@linux.vnet.ibm.com
> 
> 4.Torture-test updates that save their users some time and effort.
> 
>   http://lkml.kernel.org/r/20180423031346.ga28...@linux.vnet.ibm.com
> 
> The nvme patch called out in #2 above has a conflict with a commit in
> Linus's tree, which was reported by Stephen Rothwell in the course of
> his -next testing.  He is carrying a resolution to this conflict as
> reported on LKML here:
> 
> http://lkml.kernel.org/r/20180514134636.61831...@canb.auug.org.au
> 
> This resolution looks good to me.
> 
> All of these changes have been subjected to 0day Test Robot and -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 22df7316ac71dc1ac57415349938737d2a229c59:
> 
>   Merge branches 'exp.2018.05.15a', 'fixes.2018.05.15a', 'lock.2018.05.15a' 
> and 'torture.2018.05.15a' into HEAD (2018-05-15 10:33:05 -0700)
> 
> This merge commit is quite recent, however, the changes are exactly
> the same as the previous merge commit (434533a52e8d) dated April 30th.
> The only difference is the addition of Nick Piggin's Tested-by to all
> of the commit logs (thank you, Nick!).
> 
> 
> Boqun Feng (2):
>   rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
>   rcu: exp: Protect all sync_rcu_preempt_exp_done() with rcu_node lock
> 
> Byungchul Park (3):
>   rcu: Inline rcu_preempt_do_callback() into its sole caller
>   rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is 
> high
>   rcu: Remove deprecated RCU debugfs tracing code
> 
> Nitzan Carmi (1):
>   nvme: Avoid flush dependency in delete controller flow
> 
> Paul E. McKenney (36):
>   rcu: Parallelize expedited grace-period initialization
>   rcu: Don't allocate rcu_nocb_mask if no one needs it
>   rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
>   softirq: Eliminate unused cond_resched_softirq() macro
>   rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h
>   rcu: Update rcu_bind_gp_kthread() header comment
>   srcu: Add cleanup_srcu_struct_quiesced()
>   rcu: Add leaf-node macros
>   rcu: Improve non-root rcu_cbs_completed() accuracy
>   rcu: Make rcu_start_future_gp()'s grace-period check more precise
>   rcu: Add accessor macros for the ->need_future_gp[] array
>   rcu: Make rcu_gp_kthread() check for early-boot activity
>   rcu: Make rcu_gp_cleanup() more accurately predict need for new GP
>   rcu: Avoid losing ->need_future_gp[] values due to GP start/end races
>   rcu: Make rcu_future_needs_gp() check all ->need_future_gps[] elements
>   rcu: Convert ->need_future_gp[] array to boolean
>   rcu: Make rcu_migrate_callbacks wake GP kthread when needed
>   rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
>   rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
>   rcu: Cleanup, don't put ->completed into an int
>   rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
>   rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
>   rcu: Make rcu_start_future_gp() caller select grace period
>   rcu: Add funnel locking to rcu_start_this_gp()
>   rcu: Make rcu_start_this_gp() check for out-of-range requests
>   rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
>

Re: [GIT PULL rcu/next] RCU commits for 4.18

2018-05-16 Thread Ingo Molnar

* Paul E. McKenney  wrote:

> Hello, Ingo!
> 
> This pull request contains the following changes:
> 
> 1.Updates to the handling of expedited grace periods, perhaps most
>   notably parallelizing their initialization.  Other changes
>   include fixes from Boqun Feng.
> 
>   http://lkml.kernel.org/r/20180423022047.ga20...@linux.vnet.ibm.com
> 
> 2.Miscellaneous fixes.  These include an nvme fix from Nitzan Carmi
>   that I am carrying because it depends on a new SRCU function
>   cleanup_srcu_struct_quiesced().  This branch also includes fixes
>   from Byungchul Park and Yury Norov.  Note that several patches
>   were deferred to the v4.19 merge window due to late location
>   of bugs and late determination of a need for restructuring.
> 
>   http://lkml.kernel.org/r/20180423023150.ga21...@linux.vnet.ibm.com
> 
> 3.Updates to reduce lock contention in the rcu_node combining tree.
>   These are in preparation for the consolidation of RCU-bh,
>   RCU-preempt, and RCU-sched into a single flavor, which was
>   requested by Linus Torvalds in response to a security flaw
>   whose root cause included confusion between the multiple flavors
>   of RCU.  There will be another series of contention-reduction
>   patches in the next merge window, hopefully accompanied by the
>   consolidation itself.
> 
>   http://lkml.kernel.org/r/20180423030258.ga23...@linux.vnet.ibm.com
> 
> 4.Torture-test updates that save their users some time and effort.
> 
>   http://lkml.kernel.org/r/20180423031346.ga28...@linux.vnet.ibm.com
> 
> The nvme patch called out in #2 above has a conflict with a commit in
> Linus's tree, which was reported by Stephen Rothwell in the course of
> his -next testing.  He is carrying a resolution to this conflict as
> reported on LKML here:
> 
> http://lkml.kernel.org/r/20180514134636.61831...@canb.auug.org.au
> 
> This resolution looks good to me.
> 
> All of these changes have been subjected to 0day Test Robot and -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 22df7316ac71dc1ac57415349938737d2a229c59:
> 
>   Merge branches 'exp.2018.05.15a', 'fixes.2018.05.15a', 'lock.2018.05.15a' 
> and 'torture.2018.05.15a' into HEAD (2018-05-15 10:33:05 -0700)
> 
> This merge commit is quite recent, however, the changes are exactly
> the same as the previous merge commit (434533a52e8d) dated April 30th.
> The only difference is the addition of Nick Piggin's Tested-by to all
> of the commit logs (thank you, Nick!).
> 
> 
> Boqun Feng (2):
>   rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
>   rcu: exp: Protect all sync_rcu_preempt_exp_done() with rcu_node lock
> 
> Byungchul Park (3):
>   rcu: Inline rcu_preempt_do_callback() into its sole caller
>   rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is 
> high
>   rcu: Remove deprecated RCU debugfs tracing code
> 
> Nitzan Carmi (1):
>   nvme: Avoid flush dependency in delete controller flow
> 
> Paul E. McKenney (36):
>   rcu: Parallelize expedited grace-period initialization
>   rcu: Don't allocate rcu_nocb_mask if no one needs it
>   rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
>   softirq: Eliminate unused cond_resched_softirq() macro
>   rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h
>   rcu: Update rcu_bind_gp_kthread() header comment
>   srcu: Add cleanup_srcu_struct_quiesced()
>   rcu: Add leaf-node macros
>   rcu: Improve non-root rcu_cbs_completed() accuracy
>   rcu: Make rcu_start_future_gp()'s grace-period check more precise
>   rcu: Add accessor macros for the ->need_future_gp[] array
>   rcu: Make rcu_gp_kthread() check for early-boot activity
>   rcu: Make rcu_gp_cleanup() more accurately predict need for new GP
>   rcu: Avoid losing ->need_future_gp[] values due to GP start/end races
>   rcu: Make rcu_future_needs_gp() check all ->need_future_gps[] elements
>   rcu: Convert ->need_future_gp[] array to boolean
>   rcu: Make rcu_migrate_callbacks wake GP kthread when needed
>   rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
>   rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
>   rcu: Cleanup, don't put ->completed into an int
>   rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
>   rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
>   rcu: Make rcu_start_future_gp() caller select grace period
>   rcu: Add funnel locking to rcu_start_this_gp()
>   rcu: Make rcu_start_this_gp() check for out-of-range requests
>   rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
>   rcu: Simplify and inline 

[GIT PULL rcu/next] RCU commits for 4.18

2018-05-15 Thread Paul E. McKenney
Hello, Ingo!

This pull request contains the following changes:

1.  Updates to the handling of expedited grace periods, perhaps most
notably parallelizing their initialization.  Other changes
include fixes from Boqun Feng.

http://lkml.kernel.org/r/20180423022047.ga20...@linux.vnet.ibm.com

2.  Miscellaneous fixes.  These include an nvme fix from Nitzan Carmi
that I am carrying because it depends on a new SRCU function
cleanup_srcu_struct_quiesced().  This branch also includes fixes
from Byungchul Park and Yury Norov.  Note that several patches
were deferred to the v4.19 merge window due to late location
of bugs and late determination of a need for restructuring.

http://lkml.kernel.org/r/20180423023150.ga21...@linux.vnet.ibm.com

3.  Updates to reduce lock contention in the rcu_node combining tree.
These are in preparation for the consolidation of RCU-bh,
RCU-preempt, and RCU-sched into a single flavor, which was
requested by Linus Torvalds in response to a security flaw
whose root cause included confusion between the multiple flavors
of RCU.  There will be another series of contention-reduction
patches in the next merge window, hopefully accompanied by the
consolidation itself.

http://lkml.kernel.org/r/20180423030258.ga23...@linux.vnet.ibm.com

4.  Torture-test updates that save their users some time and effort.

http://lkml.kernel.org/r/20180423031346.ga28...@linux.vnet.ibm.com

The nvme patch called out in #2 above has a conflict with a commit in
Linus's tree, which was reported by Stephen Rothwell in the course of
his -next testing.  He is carrying a resolution to this conflict as
reported on LKML here:

http://lkml.kernel.org/r/20180514134636.61831...@canb.auug.org.au

This resolution looks good to me.

All of these changes have been subjected to 0day Test Robot and -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 22df7316ac71dc1ac57415349938737d2a229c59:

  Merge branches 'exp.2018.05.15a', 'fixes.2018.05.15a', 'lock.2018.05.15a' and 
'torture.2018.05.15a' into HEAD (2018-05-15 10:33:05 -0700)

This merge commit is quite recent, however, the changes are exactly
the same as the previous merge commit (434533a52e8d) dated April 30th.
The only difference is the addition of Nick Piggin's Tested-by to all
of the commit logs (thank you, Nick!).


Boqun Feng (2):
  rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
  rcu: exp: Protect all sync_rcu_preempt_exp_done() with rcu_node lock

Byungchul Park (3):
  rcu: Inline rcu_preempt_do_callback() into its sole caller
  rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is high
  rcu: Remove deprecated RCU debugfs tracing code

Nitzan Carmi (1):
  nvme: Avoid flush dependency in delete controller flow

Paul E. McKenney (36):
  rcu: Parallelize expedited grace-period initialization
  rcu: Don't allocate rcu_nocb_mask if no one needs it
  rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
  softirq: Eliminate unused cond_resched_softirq() macro
  rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h
  rcu: Update rcu_bind_gp_kthread() header comment
  srcu: Add cleanup_srcu_struct_quiesced()
  rcu: Add leaf-node macros
  rcu: Improve non-root rcu_cbs_completed() accuracy
  rcu: Make rcu_start_future_gp()'s grace-period check more precise
  rcu: Add accessor macros for the ->need_future_gp[] array
  rcu: Make rcu_gp_kthread() check for early-boot activity
  rcu: Make rcu_gp_cleanup() more accurately predict need for new GP
  rcu: Avoid losing ->need_future_gp[] values due to GP start/end races
  rcu: Make rcu_future_needs_gp() check all ->need_future_gps[] elements
  rcu: Convert ->need_future_gp[] array to boolean
  rcu: Make rcu_migrate_callbacks wake GP kthread when needed
  rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
  rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
  rcu: Cleanup, don't put ->completed into an int
  rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
  rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
  rcu: Make rcu_start_future_gp() caller select grace period
  rcu: Add funnel locking to rcu_start_this_gp()
  rcu: Make rcu_start_this_gp() check for out-of-range requests
  rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
  rcu: Simplify and inline cpu_needs_another_gp()
  rcu: Drop early GP request check from rcu_gp_kthread()
  rcu: Update list of rcu_future_grace_period() trace events
  torture: Add a script to edit 

[GIT PULL rcu/next] RCU commits for 4.18

2018-05-15 Thread Paul E. McKenney
Hello, Ingo!

This pull request contains the following changes:

1.  Updates to the handling of expedited grace periods, perhaps most
notably parallelizing their initialization.  Other changes
include fixes from Boqun Feng.

http://lkml.kernel.org/r/20180423022047.ga20...@linux.vnet.ibm.com

2.  Miscellaneous fixes.  These include an nvme fix from Nitzan Carmi
that I am carrying because it depends on a new SRCU function
cleanup_srcu_struct_quiesced().  This branch also includes fixes
from Byungchul Park and Yury Norov.  Note that several patches
were deferred to the v4.19 merge window due to late location
of bugs and late determination of a need for restructuring.

http://lkml.kernel.org/r/20180423023150.ga21...@linux.vnet.ibm.com

3.  Updates to reduce lock contention in the rcu_node combining tree.
These are in preparation for the consolidation of RCU-bh,
RCU-preempt, and RCU-sched into a single flavor, which was
requested by Linus Torvalds in response to a security flaw
whose root cause included confusion between the multiple flavors
of RCU.  There will be another series of contention-reduction
patches in the next merge window, hopefully accompanied by the
consolidation itself.

http://lkml.kernel.org/r/20180423030258.ga23...@linux.vnet.ibm.com

4.  Torture-test updates that save their users some time and effort.

http://lkml.kernel.org/r/20180423031346.ga28...@linux.vnet.ibm.com

The nvme patch called out in #2 above has a conflict with a commit in
Linus's tree, which was reported by Stephen Rothwell in the course of
his -next testing.  He is carrying a resolution to this conflict as
reported on LKML here:

http://lkml.kernel.org/r/20180514134636.61831...@canb.auug.org.au

This resolution looks good to me.

All of these changes have been subjected to 0day Test Robot and -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 22df7316ac71dc1ac57415349938737d2a229c59:

  Merge branches 'exp.2018.05.15a', 'fixes.2018.05.15a', 'lock.2018.05.15a' and 
'torture.2018.05.15a' into HEAD (2018-05-15 10:33:05 -0700)

This merge commit is quite recent, however, the changes are exactly
the same as the previous merge commit (434533a52e8d) dated April 30th.
The only difference is the addition of Nick Piggin's Tested-by to all
of the commit logs (thank you, Nick!).


Boqun Feng (2):
  rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
  rcu: exp: Protect all sync_rcu_preempt_exp_done() with rcu_node lock

Byungchul Park (3):
  rcu: Inline rcu_preempt_do_callback() into its sole caller
  rcu: Call wake_nocb_leader_defer() with 'FORCE' when nocb_q_count is high
  rcu: Remove deprecated RCU debugfs tracing code

Nitzan Carmi (1):
  nvme: Avoid flush dependency in delete controller flow

Paul E. McKenney (36):
  rcu: Parallelize expedited grace-period initialization
  rcu: Don't allocate rcu_nocb_mask if no one needs it
  rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
  softirq: Eliminate unused cond_resched_softirq() macro
  rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h
  rcu: Update rcu_bind_gp_kthread() header comment
  srcu: Add cleanup_srcu_struct_quiesced()
  rcu: Add leaf-node macros
  rcu: Improve non-root rcu_cbs_completed() accuracy
  rcu: Make rcu_start_future_gp()'s grace-period check more precise
  rcu: Add accessor macros for the ->need_future_gp[] array
  rcu: Make rcu_gp_kthread() check for early-boot activity
  rcu: Make rcu_gp_cleanup() more accurately predict need for new GP
  rcu: Avoid losing ->need_future_gp[] values due to GP start/end races
  rcu: Make rcu_future_needs_gp() check all ->need_future_gps[] elements
  rcu: Convert ->need_future_gp[] array to boolean
  rcu: Make rcu_migrate_callbacks wake GP kthread when needed
  rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
  rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
  rcu: Cleanup, don't put ->completed into an int
  rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
  rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
  rcu: Make rcu_start_future_gp() caller select grace period
  rcu: Add funnel locking to rcu_start_this_gp()
  rcu: Make rcu_start_this_gp() check for out-of-range requests
  rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
  rcu: Simplify and inline cpu_needs_another_gp()
  rcu: Drop early GP request check from rcu_gp_kthread()
  rcu: Update list of rcu_future_grace_period() trace events
  torture: Add a script to edit