Re: [PATCH 13/15] sched: Use a static_key for sched_clock_stable

From: Josh Boyer
Date: Thu Jan 23 2014 - 08:32:41 EST


On Thu, Jan 23, 2014 at 4:48 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> On Wed, Jan 22, 2014 at 10:17:40PM +0100, Markus Trippelsdorf wrote:
>> Yes. Thanks Peter.
>>
>
> Ah much simpler patch that should have the same effect:

This fixes the issue on my baremetal i7 machine as well.

josh

> ---
> Subject: sched/x86/tsc: Initialize multiplier to 0
> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Date: Wed, 22 Jan 2014 22:08:14 +0100
>
> Since we keep the clock value linearly continuous on frequency change,
> make sure the initial multiplier is 0, such that out initial value is
> 0. Without this we compute the initial value at whatever the TSC has
> managed to reach since power-on.
>
> Fixes: 20d1c86a57762 ("sched/clock, x86: Rewrite cyc2ns() to avoid the need to disable IRQs")
> Cc: lenb@xxxxxxxxxx
> Cc: rjw@xxxxxxxxxxxxx
> Cc: Eliezer Tamir <eliezer.tamir@xxxxxxxxxxxxxxx>
> Cc: rui.zhang@xxxxxxxxx
> Cc: jacob.jun.pan@xxxxxxxxxxxxxxx
> Cc: Mike Galbraith <bitbucket@xxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: hpa@xxxxxxxxx
> Cc: paulmck@xxxxxxxxxxxxxxxxxx
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: John Stultz <john.stultz@xxxxxxxxxx>
> Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
> Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
> Cc: Sasha Levin <sasha.levin@xxxxxxxxxx>
> Cc: dyoung@xxxxxxxxxx
> Reported-by: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>
> Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> ---
> arch/x86/kernel/tsc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -180,7 +180,7 @@ static void cyc2ns_write_end(int cpu, st
>
> static void cyc2ns_data_init(struct cyc2ns_data *data)
> {
> - data->cyc2ns_mul = 1U << CYC2NS_SCALE_FACTOR;
> + data->cyc2ns_mul = 0;
> data->cyc2ns_shift = CYC2NS_SCALE_FACTOR;
> data->cyc2ns_offset = 0;
> data->__count = 0;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/