On Thursday 15 November 2007 15:06:10 Mathieu Desnoyers wrote:
> * Rusty Russell ([email protected]) wrote:
> > A stop_machine (or lightweight variant using IPI) would be sufficient and
> > vastly simpler. Trying to patch NMI handlers while they're running is
> > already crazy.
>
> I wouldn't mind if it was limited to the code within do_nmi(), but then
> we would have to accept potential GPF if
>
> A - the NMI or MCE code calls any external kernel code (printk,
> notify_die, spin_lock/unlock, die_nmi, lapic_wd_event (perfctr code,
> calls printk too for debugging)...
Sure, but as I pointed out previously, such calls are already best effort.
You can do very little safely from do_nmi(), and calling printk isn't one of
them, nor is grabbing a spinlock (well, actually you could as long as it's
*only* used by NMI handlers. See any of those?).
> Therefore, if one decides to use the immediate values to
> leave dormant spinlock instrumentation in the kernel, I wouldn't want it
> to have undesirable side-effects (GPF) when the instrumentation is
> being enabled, as rare as it could be.
It's overengineered, since it's less likely than deadlock already.
> > I'd keep this version up your sleeve for they day when it's needed.
>
> If we choose to go this way, stop_machine would have to do a sync_core()
> on every CPU before it reactivates interrupts for this to respect
> Intel's errata.
Yes, I don't think stop_machine is actually what you want anyway, since you
are happy to run in interrupt context. An IPI-based scheme is probably
better, and also has the side effect of iret doing the sync you need, IIUC.
Hope that clarifies,
Rusty.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]