From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934920AbcCOTdD (ORCPT ); Tue, 15 Mar 2016 15:33:03 -0400 Received: from mail-wm0-f45.google.com ([74.125.82.45]:35589 "EHLO mail-wm0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750919AbcCOTc7 (ORCPT ); Tue, 15 Mar 2016 15:32:59 -0400 Subject: Re: [PATCH 1/1] KVM: don't allow irq_fpu_usable when the VCPU's XCR0 is loaded To: Andy Lutomirski References: <1457729240-3846-1-git-send-email-dmatlack@google.com> <1457729240-3846-2-git-send-email-dmatlack@google.com> <56E6BA06.7000907@redhat.com> Cc: David Matlack , "linux-kernel@vger.kernel.org" , X86 ML , kvm list , Ingo Molnar , Andrew Lutomirski , "H. Peter Anvin" , Eric Northup From: Paolo Bonzini Message-ID: <56E86366.10403@redhat.com> Date: Tue, 15 Mar 2016 20:32:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 15/03/2016 19:27, Andy Lutomirski wrote: > On Mon, Mar 14, 2016 at 6:17 AM, Paolo Bonzini 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. I am fairly sure it was added in Sandy Bridge, together with AVX. But what really matters for eager FPU is not xsave, it's xsaveopt, and I think AMD has never even produced a microprocessor that supports it. > 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. It's still a few cache lines. Benchmarks will tell. Paolo