lkml.org 
[lkml]   [2013]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: Full dynticks needs evtdesc set before marking cpu online.
    On Mon, May 13, 2013 at 11:21:00AM +0200, Thomas Gleixner wrote:
    > On Wed, 8 May 2013, Robin Holt wrote:
    >
    > > Thomas,
    > >
    > > We are seeing failures booting medium sized machines which I think is
    > > a change in expectations that dyntick put on x86's start_secondary.
    > >
    > > During boot of cpus, we see an occassional panic in tick_do_broadcast at
    >
    > http://lkml.indiana.edu/hypermail/linux/kernel/1305.0/01818.html
    >
    > Will hit Linus tree soon.

    I think this is really due to a sequence in start_secondary. The cpu
    has been marked as online, but its evtdesc has not been initialized.
    I sent a followup to this with a hack/patch.

    It was essentially:
    --- linux.orig/arch/x86/kernel/smpboot.c
    +++ linux/arch/x86/kernel/smpboot.c
    @@ -264,6 +264,8 @@ notrace static void __cpuinit start_seco
    */
    check_tsc_sync_target();

    + x86_cpuinit.setup_percpu_clockev();
    +
    /*
    * We need to hold vector_lock so there the set of online cpus
    * does not change while we are assigning vectors to cpus. Holding
    @@ -281,8 +283,6 @@ notrace static void __cpuinit start_seco
    /* to prevent fake stack check failure in clock setup */
    boot_init_stack_canary();

    - x86_cpuinit.setup_percpu_clockev();
    -
    wmb();
    cpu_startup_entry(CPUHP_ONLINE);
    }

    Robin


    \
     
     \ /
      Last update: 2013-05-13 15:01    [W:4.955 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site