On Mon, 2015-01-05 at 13:00 +0000, Peter Zijlstra wrote: > On Thu, Nov 06, 2014 at 04:51:56PM +0000, Pawel Moll wrote: > > Documentation/kernel-parameters.txt | 9 +++++++++ > > kernel/events/core.c | 37 +++++++++++++++++++++++++++++++++++++ > > 2 files changed, 46 insertions(+) > > > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt > > index 4c81a86..8ead8d8 100644 > > --- a/Documentation/kernel-parameters.txt > > +++ b/Documentation/kernel-parameters.txt > > > @@ -2763,6 +2764,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted. > > allocator. This parameter is primarily for debugging > > and performance comparison. > > > > + perf_use_local_clock > > + [PERF] > > + Use local_clock() as a source for perf timestamps > > + generation. This was be the default behaviour and > > + this parameter can be used to maintain backward > > + compatibility or on older hardware with expensive > > + monotonic clock source. > > + > > pf. [PARIDE] > > See Documentation/blockdev/paride.txt. > > So I'm always terminally confused on the naming of kernel parameters, > sometimes things are modules (even when they're not actually =m capable) > and get a module::foo naming or so and sometimes they're not. I guess you mean module.foo? > So we want to use the module naming thing or not? Honestly, I don't mind either way. For one thing ftrace doesn't bother and just uses __setup() as well. > > diff --git a/kernel/events/core.c b/kernel/events/core.c > > index 2b02c9f..5d0aa03 100644 > > --- a/kernel/events/core.c > > +++ b/kernel/events/core.c > > > @@ -322,8 +323,41 @@ extern __weak const char *perf_pmu_name(void) > > return "pmu"; > > } > > > > +static bool perf_use_local_clock; > > +static int __init perf_use_local_clock_setup(char *__unused) > > +{ > > + perf_use_local_clock = true; > > + return 1; > > +} > > +__setup("perf_use_local_clock", perf_use_local_clock_setup); > > > static inline u64 perf_clock(void) > > { > > + if (likely(!perf_use_local_clock)) > > + return ktime_get_mono_fast_ns(); > > + > > return local_clock(); > > } > > Since this all is boot time, should we not use things like static_key > and avoid the 'pointless' conditional at runtime? Right. it's good to learn new stuff - I didn't know there was architecture-agnostic support for jump labels. Definitely worth the effort, will give it a try and spin the patch. Pawel -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html