diff options
author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2011-03-16 19:04:11 -0400 |
---|---|---|
committer | Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | 2011-03-16 19:04:11 -0400 |
commit | 0f5aadf495a3975ecdf9ce1590d8bf197081e741 (patch) | |
tree | ab336ef3b47af13fc8b95911f7ca7fb1925b2128 /init | |
parent | e1583bac5b51dd5e3a0a5cb00b19b08a863ed218 (diff) |
trace-clock/get-cycles-kconfig-have-get-cycles
get_cycles() : kconfig HAVE_GET_CYCLES
Create a new "HAVE_GET_CYCLES" architecture option to specify which
architectures provide 64-bits TSC counters readable with get_cycles(). It's
principally useful to only enable high-precision tracing code only on such
architectures and don't even bother building it on architectures which lack such
support.
It also requires architectures to provide get_cycles_barrier() and
get_cycles_rate().
I mainly use it for the "priority-sifting rwlock" latency tracing code, which
traces worse-case latency induced by the locking. It also provides the basic
changes needed for the LTTng timestamping infrastructure.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: David Miller <davem@davemloft.net>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Ingo Molnar <mingo@redhat.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Steven Rostedt <rostedt@goodmis.org>
CC: linux-arch@vger.kernel.org
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index be788c0957d..b22b0fee060 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -683,6 +683,16 @@ config CGROUP_MEM_RES_CTLR_SWAP_ENABLED select this option (if, for some reason, they need to disable it then noswapaccount does the trick). +# +# Architectures with a 64-bits get_cycles() should select this. +# They should also define +# get_cycles_barrier() : instruction synchronization barrier if required +# get_cycles_rate() : cycle counter rate, in HZ. If 0, TSC are not synchronized +# across CPUs or their frequency may vary due to frequency scaling. +# +config HAVE_GET_CYCLES + def_bool n + menuconfig CGROUP_SCHED bool "Group CPU scheduler" depends on EXPERIMENTAL |