Messages in this thread | | | Date | Fri, 16 Apr 2010 18:54:44 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [PATCH v2] [watchdog] combine nmi_watchdog and softlockup |
| |
On Fri, Apr 16, 2010 at 04:46:17PM +0200, Frederic Weisbecker wrote: ... > > > > + if (hardlockup_panic) > > > > + panic("Watchdog detected hard LOCKUP on cpu %d", this_cpu); > > > > + else > > > > + WARN(1, "Watchdog detected hard LOCKUP on cpu %d", this_cpu); > > > > + > > > > + cpumask_set_cpu(this_cpu, to_cpumask(hardlockup_mask)); > > > > > > > > > > > > May be have an arch spin lock there to update your cpu mask safely. > > > > > > > Hmm, this is NMI handler path so from what we protect this per-cpu data? > > Do I miss something? /me confused > > > The cpu mask is not per cpu here, this is a shared bitmap, so you > can race against other cpus NMIs. > > That said, as I suggested, having a per cpu var that we set when we > warned would be much better than a spinlock here. >
yeah, saw DECLARE_BITMAP but read it as DEFINE_PER_CPU for some reason. having any spinlock in irq handler is really under suspicious.
-- Cyrill
| |