lkml.org 
[lkml]   [2011]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH 2/2] sched: Fix "divide error: 0000" in find_busiest_group
    From
    Date
    On Tue, 2011-07-19 at 16:21 -0600, Terry Loftin wrote:
    > > So you're running on a platform (unspecified) where we use a raw
    > > sched_clock() that is buggy. Again, you're fixing symptoms not causes.
    > >
    > This x86_64. This is the actual cause, unless the rq->clock
    > value should never roll, in which case, the clock roll is the
    > actual cause and you can disregard these patches.

    Its supposed to roll over on the full 64bit, and I think x86_64 only
    suffers this if you have sched_clock_stable set to 1.

    So I think the correct fix is disabling that logic for now. John Stultz
    was working on some patches to fix __cycles_2_ns().

    Something like the below perhaps.

    ---
    arch/x86/kernel/cpu/intel.c | 2 --
    1 files changed, 0 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
    index 1edf5ba..dba0482 100644
    --- a/arch/x86/kernel/cpu/intel.c
    +++ b/arch/x86/kernel/cpu/intel.c
    @@ -91,8 +91,6 @@ static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
    if (c->x86_power & (1 << 8)) {
    set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
    set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC);
    - if (!check_tsc_unstable())
    - sched_clock_stable = 1;
    }

    /*



    \
     
     \ /
      Last update: 2011-07-20 00:31    [W:0.039 / U:32.244 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site