Prev: drivers/net: remove network drivers' last few uses of IRQF_SAMPLE_RANDOM
Next: ALSA: Add initial support for Thinkpad T410s HDA codec.
From: David Miller on 15 Apr 2010 03:00 From: Ingo Molnar <mingo(a)elte.hu> Date: Thu, 15 Apr 2010 08:49:40 +0200 > Btw., WARN_ON trapping on PowerPC is clearly a PowerPC bug - there's a good > reason we have WARN_ON versus BUG_ON - it should be fixed. I disagree, an implementation should be allowed to use the most efficient implementation possible for both interfaces. I would be using traps for both on sparc64 if that were really feasible on sparc64 (and actually with gcc-4.5's "asm goto" it might actually be now) The WARN and BUG macros, when implemented without traps, have serious implications for overall code size and register pressure. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Stephen Rothwell on 15 Apr 2010 06:10 Hi Ingo, On Thu, 15 Apr 2010 08:49:40 +0200 Ingo Molnar <mingo(a)elte.hu> wrote: > > Ok, we'll fix the warning. Thanks. -- Cheers, Stephen Rothwell sfr(a)canb.auug.org.au http://www.canb.auug.org.au/~sfr/
From: Benjamin Herrenschmidt on 15 Apr 2010 22:00 On Thu, 2010-04-15 at 09:32 +0200, Ingo Molnar wrote: > It trades robustness for slightly better space/code efficiency. > > Such a trap based mechanism exists on x86 as well and we use it for BUG_ON(). > We intentionally dont use it to generate warnings and dont override __WARN(), > because it would blow up way too often when a warning triggers in some > sensitive codepath that cannot take a trap. > > Anyway, the warning obviously has to be fixed - but the boot crash itself is > PowerPC's own doing. Well, yes and no, as I explained in a separate branch of that thread. We indeed can't cope with a WARN in that spot because it goes recursive. Now the reason we have this double-enable is due afaik to the way I implemented IRQ trace, because things like syscalls basically force-enable IRQs on powerpc and I don't necessarily have tracking informations in the exception return path of what the "old" value was. I need to double check what the exact scenario here is and whether I can fix it but it's one of those cases where what lockdep is warning about isn't actually an error I believe. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Peter Zijlstra on 16 Apr 2010 06:40
On Thu, 2010-04-15 at 19:15 +0200, Frederic Weisbecker wrote: > > that looks rather ugly. Why not do a raw: > > > > this_cpu_inc(lockdep_stats.redundant_hardirqs_on); > > > > which basically open-codes debug_atomic_inc(), but without the warning? > > > Because that would open a race against interrupts that might > touch lockdep_stats.redundant_hardirqs_on too. How so, its a pure per-cpu variable right? so either the increment happens before the interrupts hits, or after, in either case there should not be a race with interrupts. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |