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.

