lkml.org 
[lkml]   [2014]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 13/15] sched: Use a static_key for sched_clock_stable
    From
    On Thu, Jan 23, 2014 at 4:48 AM, Peter Zijlstra <peterz@infradead.org> 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@infradead.org>
    > 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@kernel.org
    > Cc: rjw@rjwysocki.net
    > Cc: Eliezer Tamir <eliezer.tamir@linux.intel.com>
    > Cc: rui.zhang@intel.com
    > Cc: jacob.jun.pan@linux.intel.com
    > Cc: Mike Galbraith <bitbucket@online.de>
    > Cc: Ingo Molnar <mingo@kernel.org>
    > Cc: hpa@zytor.com
    > Cc: paulmck@linux.vnet.ibm.com
    > Cc: Thomas Gleixner <tglx@linutronix.de>
    > Cc: John Stultz <john.stultz@linaro.org>
    > Cc: Andy Lutomirski <luto@amacapital.net>
    > Cc: Arjan van de Ven <arjan@linux.intel.com>
    > Cc: Sasha Levin <sasha.levin@oracle.com>
    > Cc: dyoung@redhat.com
    > Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    > Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    > ---
    > 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@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/


    \
     
     \ /
      Last update: 2014-01-23 15:21    [W:3.976 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site