Skip to content

idle-related changes

Paul E. McKenney linux-alpha linux-m68k linux-parisc lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest26 patches 46 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26rcu: New rcu_user_enter() and rcu_user_exit() APIsinclude/linux/rcupdate.h kernel/rcutree.c+83 -342 replies
2/26rcu: New rcu_user_enter_irq() and rcu_user_exit_irq() APIsinclude/linux/rcupdate.h kernel/rcutree.c+45 -03 replies
3/26rcu: Make RCU_FAST_NO_HZ handle adaptive tickskernel/rcutree_plugin.h+20 -01 reply
4/26rcu: Settle config for userspace extended quiescent statearch/Kconfig include/linux/rcupdate.h init/Kconfig +1 more+32 -14 replies
5/26rcu: Allow rcu_user_enter()/exit() to nestkernel/rcutree.c kernel/rcutree.h+36 -81 reply
6/26rcu: Ignore userspace extended quiescent state by defaultkernel/rcutree.c kernel/rcutree.h+5 -11 reply
7/26rcu: Switch task's syscall hooks on context switcharch/um/drivers/mconsole_kern.c include/linux/rcupdate.h include/linux/sched.h +2 more+27 -01 reply
8/26x86: Syscall hooks for userspace RCU extended QSarch/x86/include/asm/thread_info.h arch/x86/kernel/ptrace.c+12 -32 replies
9/26x86: Exception hooks for userspace RCU extended QSarch/x86/include/asm/rcu.h arch/x86/kernel/traps.c arch/x86/mm/fault.c+53 -101 reply
10/26rcu: Exit RCU extended QS on kernel preemption after irq/exceptionkernel/sched/core.c+1 -03 replies
11/26rcu: Exit RCU extended QS on user preemptionkernel/sched/core.c+7 -012 replies
12/26x86: Use the new schedule_user API on userspace preemptionarch/x86/kernel/entry_64.S+4 -41 reply
13/26x86: Exit RCU extended QS on notify resumearch/x86/Kconfig arch/x86/kernel/signal.c+5 -01 reply
14/26rcu: Userspace RCU extended QS selftestinit/Kconfig kernel/rcutree.c+9 -11 reply
15/26alpha: Fix preemption handling in idle looparch/alpha/kernel/process.c arch/alpha/kernel/smp.c+3 -11 reply
16/26alpha: Add missing RCU idle APIs on idle looparch/alpha/kernel/process.c+3 -01 reply
17/26cris: Add missing RCU idle APIs on idle looparch/cris/kernel/process.c+3 -01 reply
18/26frv: Add missing RCU idle APIs on idle looparch/frv/kernel/process.c+3 -01 reply
19/26h8300: Add missing RCU idle APIs on idle looparch/h8300/kernel/process.c+3 -01 reply
20/26m32r: Add missing RCU idle APIs on idle looparch/m32r/kernel/process.c+3 -01 reply
21/26m68k: Add missing RCU idle APIs on idle looparch/m68k/kernel/process.c+3 -00 replies
21/26m68k: Add missing RCU idle APIs on idle looparch/m68k/kernel/process.c+3 -01 reply
22/26mn10300: Add missing RCU idle APIs on idle looparch/mn10300/kernel/process.c+3 -01 reply
23/26parisc: Add missing RCU idle APIs on idle looparch/parisc/kernel/process.c+3 -01 reply
24/26score: Add missing RCU idle APIs on idle looparch/score/kernel/process.c+3 -11 reply
25/26xtensa: Add missing RCU idle APIs on idle looparch/xtensa/kernel/process.c+3 -01 reply
26/26ia64: Add missing RCU idle APIs on idle looparch/ia64/kernel/process.c+3 -01 reply

Reviews trailers per patch

26 of 27 patches have a Reviewed-by or Acked-by.

PatchGeert UytterhoevenJosh Triplett
1/26R-b
2/26
3/26R-b
4/26R-b
5/26R-b
6/26R-b
7/26R-b
8/26R-b
9/26R-b
10/26R-b
11/26R-b
12/26R-b
13/26R-b
14/26R-b
15/26R-b
16/26R-b
17/26R-b
18/26R-b
19/26R-b
20/26R-b
21/26A-b A-b R-b
21/26A-b A-b R-b
22/26R-b
23/26R-b
24/26R-b
25/26R-b
26/26R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/26] idle-related changes

Hello!

This series handles changes to the interaction between RCU and idle, including adaptive ticks. Almost all of these patches are courtesy of Frederic Weisbecker. The patches are as follows:

1. Allow non-idle tasks to enter dyntick-idle mode from RCU's
perspective in order to enable adaptive ticks.
2. Add rcu_user_enter_irq() and rcu_user_exit_irq() to enable
switching into and out of dyntick-idle mode in interrupt handlers to handle wakeups.
3. Modify RCU_FAST_NO_HZ to accommodate adaptive ticks.
4. Add a Kconfig option to enable extended quiescent states while
in usermode execution.
5. Allow multiple rcu_user_enter() calls to match an rcu_user_exit().
6. Introcude runtime control for RCU's classification of user-mode
execution as an extended quiescent state.
7. Update adaptive-tick state on context switch in order to handle
task migration.
8. On x86, notify RCU of slowpath syscall entry to and exit from
usermode execution so that RCU can track the resulting extended quiescent states.
9. On c86, notify RCU of exception-path entry to and exit from
usermode execution so that RCU can again strack the resulting extended quiescent states.
10. Exit RCU extended QS on kernel preemption after irq/exception.
11. Exit RCU extended QS on user preemption.
12. On x86, use the new schedule_user API on userspace preemption.
13. On x86, exit RCU extended QS on notify resumes.
14. Provide a new RCU_USER_QS_FORCE kconfig option that enables
userspace RCU extended quiescent states on all CPUs for testing purposes.
15-26. Fix idle-loop breakage introduced on 3.3. This affects all
architectures that do not implement NO_HZ.

Thanx, Paul

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

 arch/alpha/kernel/process.c          |    3 
 b/arch/Kconfig                       |   10 +++
 b/arch/alpha/kernel/process.c        |    3 
 b/arch/alpha/kernel/smp.c            |    1 
 b/arch/cris/kernel/process.c         |    3 
 b/arch/frv/kernel/process.c          |    3 
 b/arch/h8300/kernel/process.c        |    3 
 b/arch/ia64/kernel/process.c         |    3 
 b/arch/m32r/kernel/process.c         |    3 
 b/arch/m68k/kernel/process.c         |    3 
 b/arch/mn10300/kernel/process.c      |    3 
 b/arch/parisc/kernel/process.c       |    3 
 b/arch/score/kernel/process.c        |    4 -
 b/arch/um/drivers/mconsole_kern.c    |    1 
 b/arch/x86/Kconfig                   |    1 
 b/arch/x86/include/asm/rcu.h         |   20 ++++++
 b/arch/x86/include/asm/thread_info.h |   10 ++-
 b/arch/x86/kernel/entry_64.S         |    8 +-
 b/arch/x86/kernel/ptrace.c           |    5 +
 b/arch/x86/kernel/signal.c           |    4 +
 b/arch/x86/kernel/traps.c            |   30 ++++++---
 b/arch/x86/mm/fault.c                |   13 +++
 b/arch/xtensa/kernel/process.c       |    3 
 b/include/linux/rcupdate.h           |    2 
 b/include/linux/sched.h              |    8 ++
 b/init/Kconfig                       |   10 +++
 b/kernel/rcutree.c                   |  115 ++++++++++++++++++++++++-----------
 b/kernel/rcutree.h                   |    3 
 b/kernel/rcutree_plugin.h            |   20 ++++++
 b/kernel/sched/core.c                |    1 
 include/linux/rcupdate.h             |   12 +++
 init/Kconfig                         |    8 ++
 kernel/rcutree.c                     |  111 ++++++++++++++++++++++++++++++---
 kernel/rcutree.h                     |    1 
 kernel/sched/core.c                  |    8 ++
 35 files changed, 375 insertions(+), 64 deletions(-)