[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4214c886-6d2b-4e05-9201-11b4e9c88932@citrix.com>
Date: Thu, 23 Oct 2025 20:26:01 +0100
From: Andrew Cooper <andrew.cooper3@...rix.com>
To: peterz@...radead.org
Cc: David.Kaplan@....com, boris.ostrovsky@...cle.com, bp@...en8.de,
dave.hansen@...ux.intel.com, graf@...zon.com, hpa@...or.com,
jpoimboe@...nel.org, linux-kernel@...r.kernel.org, mingo@...hat.com,
pawan.kumar.gupta@...ux.intel.com, tglx@...utronix.de, x86@...nel.org
Subject: Re: [RFC PATCH 40/56] x86/alternative: Use sync_core_nmi_safe()
> + /* + * For all other processors, there are quite a few ways to do
> this. + * IRET-to-self is nice because it works on every CPU, at any
> CPL + * (so it's compatible with paravirtualization), and it never
> exits + * to a hypervisor.
"Never" isn't correct. "Typically doesn't" is better in this context.
On Intel, there's the NMI_WINDOW vmexit which generally occurs after the
IRET is complete.
On AMD, prior to current generation CPUs, there was no NMI virt support,
and intercepting IRET is how the hypervisor is forced to cope. (The
intercept is Fault-like so happens before the IRET executes, and there
are a variety of increasingly terrible ways of trying to account for this.)
~Andrew
Powered by blists - more mailing lists