]> git.karo-electronics.de Git - linux-beck.git/commit
context_tracking: New context tracking susbsystem
authorFrederic Weisbecker <fweisbec@gmail.com>
Tue, 27 Nov 2012 18:33:25 +0000 (19:33 +0100)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 30 Nov 2012 19:40:07 +0000 (11:40 -0800)
commit91d1aa43d30505b0b825db8898ffc80a8eca96c7
tree911636f846d800c8a44efd540842dc726ec7c191
parent4e79752c25ec221ac1e28f8875b539ed7631a0db
context_tracking: New context tracking susbsystem

Create a new subsystem that probes on kernel boundaries
to keep track of the transitions between level contexts
with two basic initial contexts: user or kernel.

This is an abstraction of some RCU code that use such tracking
to implement its userspace extended quiescent state.

We need to pull this up from RCU into this new level of indirection
because this tracking is also going to be used to implement an "on
demand" generic virtual cputime accounting. A necessary step to
shutdown the tick while still accounting the cputime.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Gilad Ben-Yossef <gilad@benyossef.com>
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
[ paulmck: fix whitespace error and email address. ]
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
15 files changed:
arch/Kconfig
arch/x86/Kconfig
arch/x86/include/asm/context_tracking.h [moved from arch/x86/include/asm/rcu.h with 63% similarity]
arch/x86/kernel/entry_64.S
arch/x86/kernel/ptrace.c
arch/x86/kernel/signal.c
arch/x86/kernel/traps.c
arch/x86/mm/fault.c
include/linux/context_tracking.h [new file with mode: 0644]
include/linux/rcupdate.h
init/Kconfig
kernel/Makefile
kernel/context_tracking.c [new file with mode: 0644]
kernel/rcutree.c
kernel/sched/core.c