Re: VMX Preemption Timer appears to be buggy on SKX, CLX, and ICX

From: Jim Mattson

Date: Thu Jun 04 2026 - 18:00:43 EST


?

On Thu, Jun 4, 2026 at 12:58 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote:
>
> On Wed, Jun 03, 2026, Jim Mattson wrote:
> > On Thu, May 14, 2026 at 11:35 PM Chao Gao <chao.gao@xxxxxxxxx> wrote:
> > >
> > > >> EMR158. VMX-Preemption Timer May Expire Earlier With Certain Large Timer Values
> > > >
> > > >I assume the same erratum applies to previous generations as well?
> > >
> > > Yes.
> >
> > This test still fails on our SKX, CLX, and ICX systems.
> >
> > Sean,
> >
> > Were you thinking of enforcing a cap on delta_tsc in vmx_set_hv_timer()?
>
> Heh, to be honest, I wasn't thinking of a whole lot of nothing. Falling back to
> hrtimers does seem like the easiest solution.

I think vmx_set_hv_timer() should return -EINVAL for values impacted
by this erratum. However, the only documented issue is for EMR, and we
have not observed the problem on EMR. That's unsettling.

Chao:

1) Should we just assume that all Intel CPUs are affected?

2) Is there any compelling reason not to simplify the limit to 2^25?

3) Is it just coincidence that 25 + IA32_VMX_MISC[4:0] (on EMR) == 32,
or should the limit be calculated as 32 - IA32_VMX_MISC[4:0]?