Re: [PATCH] Prevent going idle with softirq pending

From: Ingo Molnar
Date: Tue May 22 2007 - 01:05:42 EST



* Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:

> The NOHZ patch contains a check for softirqs pending when a CPU goes
> idle. The BUG is unrelated to NOHZ, it just was made visible by the
> NOHZ patch. The BUG showed up mainly on P4 / hyperthreading enabled
> machines which lead the investigations into the wrong direction in the
> first place. The real cause is in cond_resched_softirq():
>
> cond_resched_softirq() is enabling softirqs without invoking the
> softirq daemon when softirqs are pending. This leads to the warning
> message in the NOHZ idle code:

good find!

> raw_local_irq_disable();
> - _local_bh_enable();
> + local_bh_enable();
> raw_local_irq_enable();

hm, i think this should be done without having irqs disabled?

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/