On Tue, May 26, 2026 at 2:30 PM Kaplan, David <[email protected]> wrote:
>
> AMD General
>
> > -----Original Message-----
> > From: Jim Mattson <[email protected]>
> > Sent: Tuesday, May 26, 2026 1:39 PM
> > To: Kaplan, David <[email protected]>
> > Cc: Sean Christopherson <[email protected]>; [email protected];
> > [email protected]; [email protected]; [email protected];
> > [email protected]; [email protected]; [email protected];
> > [email protected]; [email protected]; [email protected]; linux-
> > [email protected]; [email protected]
> > Subject: Re: [PATCH v3 3/4] KVM: x86: Virtualize AMD CPUID faulting
> >
> > Caution: This message originated from an External Source. Use proper caution
> > when opening attachments, clicking links, or responding.
> >
> >
> > On Thu, May 14, 2026 at 11:17 AM Kaplan, David <[email protected]>
> > wrote:
> > >
> > > This appears to be a bug, as most other instructions (e.g. INVPCID) that 
> > > have
> > CPL checks do the CPL checks before the VMEXIT checks.  I'm following up on
> > this internally...
> >
> > Did you learn anything from the internal follow-up? The ellipsis
> > suggests, "stay tuned..." :)
>
> It appears it was a deliberate decision, due in part to the fact that the 
> traditional flow of checking CPL exceptions before intercepts typically 
> applies to using instructions in an illegal way, but the user is not doing 
> anything illegal here by executing CPUID which is normally a legal 
> instruction at CPL3.
>
> That said, clearly the behavior is different now between the vendors, however 
> at this point the feedback I got is that our architects want to stick with 
> the existing behavior unless there is a strong reason that it is a problem 
> for SW.

No problem from the standpoint of nested SVM emulation.

The APM does say, "**Generally** [emphasis mine], instruction
intercepts are checked after simple exceptions (such as #GP—when CPL
is incorrect—or #UD) have been checked, but before exceptions related
to memory accesses (such as page faults) and exceptions based on
specific operand values," but it would be nice to have exceptions such
as this enumerated.

Reply via email to