Subject: Re: Soft-Lockup/Race in networking in 2.6.31-rc1+195 ( possibly?caused by netem)

From: Jarek Poplawski <[email-masked]>
Date: Thu, 9 Jul 2009 00:42:59 +0200

On Wed, Jul 08, 2009 at 11:27:30PM +0100, Joao Correia wrote:
> On Wed, Jul 8, 2009 at 11:07 PM, Jarek Poplawski<[email-masked]> wrote:
> > On Wed, Jul 08, 2009 at 10:44:47PM +0100, Joao Correia wrote:
> >> Hello again
> > Hello!
> >
> > ...
> >> So again, the only thing that stops that freeze is  `echo 0 >>
> >> /proc/sys/kernel/timer_migration`. Apologies for pointing you in the
> >> wrong direction.
> >
> > No problem: the direction is almost right, we only need one U-turn ;-)
> > In case you're not bored or too bored, one little patch to check the
> > other side (after reverting the previous patch).
> >
> > Thanks,
> > Jarek P.
> > ---
> >
> >  kernel/hrtimer.c |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
> > index 9002958..23387e4 100644
> > --- a/kernel/hrtimer.c
> > +++ b/kernel/hrtimer.c
> > @@ -203,7 +203,7 @@ switch_hrtimer_base(struct hrtimer *timer, struct hrtimer_clock_base *base,
> >        int cpu, preferred_cpu = -1;
> >
> >        cpu = smp_processor_id();
> > -#if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP)
> > +#if 0
> >        if (!pinned && get_sysctl_timer_migration() && idle_cpu(cpu)) {
> >                preferred_cpu = get_nohz_load_balancer();
> >                if (preferred_cpu >= 0)
> >
> 
> (this time i triple-checked :-) )
> 
> So, with only this last patch applied, no freeze. No need to disable
> anything through /proc.
> 
> Where should i put the BUG_ON?

Hmm... Not so fast! I've looked in timers till now; "tomorrow" I'll
"change resolution". ;-)

Thanks again,
Jarek P.