On Thu, Sep 17, 2026 at 1:22 AM Tina Zhang <[email protected]> wrote:
>
>
>
> On 9/15/2026 6:33 AM, Jim Mattson wrote:
> > Should this be:
> >
> > .exit_info_1 = BIT_ULL(63),
> > .exit_info_1_mask = ~0ULL,
>
> Did you mean .exit_info_1 = 0? For CLTS, bit 63 should be clear.
>
> I tested CLTS without FEP on an EPYC 9754 and captured EXITINFO1 at
> the L0 kvm_exit tracepoint, before reflection to L1. It was zero in
> all cases, with CR0.TS both clear and set. Each case followed a
> MOV-from-CR4 exit that populated EXITINFO1 with 0x800000000000000a.
>
> The current mask checks only that bit 63 is clear. Would you prefer
> checking the entire field against zero?
>
> I'm a little unsure how to interpret the APM here: “If the instruction
> is LMSW or CLTS, no additional information is provided and bit 63 is
> not set.” Does “no additional information” mean the remaining bits
> must be zero, or simply that they contain no valid decode information
> and should be ignored?

I stand corrected, and I agree with your interpretation of the APM.
The original code is fine.

Reply via email to