[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200707192306.20625.ak@suse.de>
Date: Thu, 19 Jul 2007 23:06:20 +0200
From: Andi Kleen <ak@...e.de>
To: Jeremy Fitzhardinge <jeremy@...p.org>
Cc: patches@...-64.org, Zachary Amsden <zach@...are.com>,
Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>,
Rusty Russell <rusty@...tcorp.com.au>,
linux-kernel@...r.kernel.org,
"S. P. Prasanna" <prasanna@...ibm.com>,
Chris Wright <chrisw@...s-sol.org>
Subject: Re: [patches] new text patching for review
On Thursday 19 July 2007 22:51:51 Jeremy Fitzhardinge wrote:
> Andi Kleen wrote:
> > Normally there are not that many NMIs or MCEs at boot, but it would
> > be still good to avoid the very rare crash by auditing the code first
> > [better than try to debug it on some production system later]
> >
>
> Auditing it for what? If we want to make patching safe against NMI/MCE,
> I guess we need to make sure those handlers don't use any pvops, but
> that seems unreasonable if they want to poke at MSRs and so on.
Either not use any pvops or make sure all the pvops patching is atomic
on the local CPU.
Ok you can avoid MCEs by not enabling them until after you patch (which I think
is the case currently), but it's more difficult with NMIs.
The plain NMI handler is probably auditable.
Or set a flag that makes the NMI handler just return during patching?
>
> > In theory yes, in practice there can be errata of course. There tend
> > to be a couple with self modifying code, especially cross modifying
> > (from another CPU) -- but you don't do that.
> >
>
> No, but the pv-ops patching code should have no requirement for
> atomicity at all; we shouldn't be trying to patch a live instruction stream.
Yes, but NMI could happen inbetween
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists