Messages in this thread | | | From | Andy Lutomirski <> | Date | Tue, 15 Mar 2016 11:27:16 -0700 | Subject | Re: [PATCH 1/1] KVM: don't allow irq_fpu_usable when the VCPU's XCR0 is loaded |
| |
On Mon, Mar 14, 2016 at 6:17 AM, Paolo Bonzini <pbonzini@redhat.com> wrote: > > > On 11/03/2016 22:33, David Matlack wrote: >> > Is this better than just always keeping the host's XCR0 loaded outside >> > if the KVM interrupts-disabled region? >> >> Probably not. AFAICT KVM does not rely on it being loaded outside that >> region. xsetbv isn't insanely expensive, is it? Maybe to minimize the >> time spent with interrupts disabled it was put outside. >> >> I do like that your solution would be contained to KVM. > > I agree with Andy. We do want a fix for recent kernels because of the > !eager_fpu case that Guangrong mentioned. > > Paolo > > ps: while Andy is planning to kill lazy FPU, I want to benchmark it with > KVM... Remember that with a single pre-xsave host in your cluster, your > virt management might happily default your VMs to a Westmere or Nehalem > CPU model. GCC might be a pretty good testbench for this (e.g. a kernel > compile with very high make -j), because outside of the lexer (which > plays SIMD games) it never uses the FPU.
Aren't pre-xsave CPUs really, really old? A brief search suggests that Intel Core added it somewhere in the middle of the cycle.
For pre-xsave, it could indeed hurt performance a tiny bit under workloads that use the FPU and then stop completely because the xsaveopt and init optimizations aren't available. But even that is probably a very small effect, especially because pre-xsave CPUs have smaller FPU state sizes.
-- Andy Lutomirski AMA Capital Management, LLC
| |