lkml.org 
[lkml]   [2009]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6.32-rc5-mmotm1101 - lockdep whinge during early boot
    On 11/05, Thomas Gleixner wrote:
    >
    > On Thu, 5 Nov 2009, Oleg Nesterov wrote:
    > > > Oleg (CC'd) made workqueues use cpu_maps_update_begin() instead of the
    > > > more obvious get_online_cpus() in 3da1c84c00c7e5f. Reverting that seems like
    > > > a bad idea.
    > >
    > > Even if create_workueue() used get_online_cpus() instead of cpu_add_remove_lock,
    > > we have the same problem: _cpu_up() takes cpu_hotplug.lock which is needed for
    > > get_online_cpus(). The dependency above becomes:
    > >
    > > cpu_up()->clocksource_change_rating() takes clocksource_mutex under
    > > cpu_hotplug.lock (cpu_hotplug_begin)
    > >
    > > clocksource_done_booting()->create_workueue() takes cpu_hotplug.lock
    > > (get_online_cpus) under clocksource_mutex
    >
    > Hmm, we fixed all this lock madness in mainline already.
    > clocksource_done_booting() does not longer call
    > create_workqueue(). How got this code reverted in motm ?

    I don't understand this code at all. But this is what I see
    in Linus's tree:

    clocksource_done_booting
    clocksource_select
    timekeeping_notify
    stop_machine
    stop_machine_create


    OTOH, I don't see where native_cpu_up() path calls clocksource_change_rating(),
    perhaps this was changed in -mm.

    Oleg.



    \
     
     \ /
      Last update: 2009-11-05 16:31    [W:2.239 / U:0.628 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site