lkml.org 
[lkml]   [2011]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Regression: WARNINGS and lockdep spews in 2.6.38-rc3+ (bisected).
    On Thu, Feb 03, 2011 at 10:30:40AM +0100, Peter Zijlstra wrote:
    > On Thu, 2011-02-03 at 17:12 +0800, Yong Zhang wrote:
    > > #ifdef CONFIG_LOCKDEP
    > > + unsigned long flags;
    > > +
    > > local_bh_disable();
    > > lock_map_acquire(&timer->lockdep_map);
    > > lock_map_release(&timer->lockdep_map);
    > > - local_bh_enable();
    > > + /* raw_local_irq_[save|restore] is to protect _local_bh_enable() */
    > > + raw_local_irq_save(flags);
    > > + _local_bh_enable();
    > > + raw_local_irq_restore(flags);
    > > #endif
    >
    > _why_ are you doing the raw_local_irq stuff? That's just weird, and that
    > comment isn't helping.

    Just to avoid trigger WARN_ON_ONCE(!irqs_disabled()) in __local_bh_enable(),

    >
    > Also, calling _local_bh_enable() will leave pending softirqs, not
    > particularly nice

    Ah, indeed. That's bad.

    Now I'm not sure how to work around this issue, because local_bh_enable()
    and _local_bh_enable() are not suitable here.

    Maybe we can introduce another type of local_bh_enable() in which
    waking up ksoftirqd is forced if needed.

    Thanks,
    Yong


    \
     
     \ /
      Last update: 2011-02-03 11:21    [W:0.021 / U:31.276 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site