From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Maydell Subject: Re: [PULL 07/28] x86/cpu: use standard-headers/asm-x86.kvm_para.h Date: Fri, 25 May 2018 12:53:44 +0100 Message-ID: References: <1527086545-68024-1-git-send-email-mst@redhat.com> <1527086545-68024-8-git-send-email-mst@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Cc: Eduardo Habkost , kvm-devel , Marcelo Tosatti , QEMU Developers , Paolo Bonzini , Richard Henderson To: "Michael S. Tsirkin" Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel2=m.gmane.org@nongnu.org Sender: "Qemu-devel" List-Id: kvm.vger.kernel.org On 25 May 2018 at 12:06, Peter Maydell wrote: > On 23 May 2018 at 15:43, Michael S. Tsirkin wrote: >> Switch to the header we imported from Linux, >> this allows us to drop a hack in kvm_i386.h. >> More code will be dropped in the next patch. >> >> Signed-off-by: Michael S. Tsirkin > >> --- a/target/i386/cpu.h >> +++ b/target/i386/cpu.h >> @@ -688,8 +688,6 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; >> #define CPUID_7_0_EDX_SPEC_CTRL (1U << 26) /* Speculation Control */ >> #define CPUID_7_0_EDX_SPEC_CTRL_SSBD (1U << 31) /* Speculative Store Bypass Disable */ >> >> -#define KVM_HINTS_DEDICATED (1U << 0) >> - >> #define CPUID_8000_0008_EBX_IBPB (1U << 12) /* Indirect Branch Prediction Barrier */ >> >> #define CPUID_XSAVE_XSAVEOPT (1U << 0) > > Hi -- this seems like it will break compilation when we next > update our copy of the Linux kernel headers, because (as of > 4.17-rc6, at least), asm-x86/kvm_para.h doesn't define > KVM_HINTS_DEDICATED. For the moment I'm using this workaround (I wanted to do a header update for something else I'm working on): --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -48,6 +48,11 @@ #include "exec/memattrs.h" #include "trace.h" +/* Work around this kernel header constant changing its name */ +#ifndef KVM_HINTS_REALTIME +#define KVM_HINTS_REALTIME KVM_HINTS_DEDICATED +#endif + //#define DEBUG_KVM #ifdef DEBUG_KVM @@ -387,7 +392,7 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function, ret &= ~(1U << KVM_FEATURE_PV_UNHALT); } } else if (function == KVM_CPUID_FEATURES && reg == R_EDX) { - ret |= 1U << KVM_HINTS_DEDICATED; + ret |= 1U << KVM_HINTS_REALTIME; found = 1; } thanks -- PMM From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35177) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMBIM-0000aw-W4 for qemu-devel@nongnu.org; Fri, 25 May 2018 07:54:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMBIM-00017S-2w for qemu-devel@nongnu.org; Fri, 25 May 2018 07:54:07 -0400 Received: from mail-oi0-x244.google.com ([2607:f8b0:4003:c06::244]:41636) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMBIL-00017J-P8 for qemu-devel@nongnu.org; Fri, 25 May 2018 07:54:05 -0400 Received: by mail-oi0-x244.google.com with SMTP id 11-v6so4320457ois.8 for ; Fri, 25 May 2018 04:54:05 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1527086545-68024-1-git-send-email-mst@redhat.com> <1527086545-68024-8-git-send-email-mst@redhat.com> From: Peter Maydell Date: Fri, 25 May 2018 12:53:44 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" Subject: Re: [Qemu-devel] [PULL 07/28] x86/cpu: use standard-headers/asm-x86.kvm_para.h List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: QEMU Developers , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum , Marcelo Tosatti , kvm-devel On 25 May 2018 at 12:06, Peter Maydell wrote: > On 23 May 2018 at 15:43, Michael S. Tsirkin wrote: >> Switch to the header we imported from Linux, >> this allows us to drop a hack in kvm_i386.h. >> More code will be dropped in the next patch. >> >> Signed-off-by: Michael S. Tsirkin > >> --- a/target/i386/cpu.h >> +++ b/target/i386/cpu.h >> @@ -688,8 +688,6 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; >> #define CPUID_7_0_EDX_SPEC_CTRL (1U << 26) /* Speculation Control */ >> #define CPUID_7_0_EDX_SPEC_CTRL_SSBD (1U << 31) /* Speculative Store Bypass Disable */ >> >> -#define KVM_HINTS_DEDICATED (1U << 0) >> - >> #define CPUID_8000_0008_EBX_IBPB (1U << 12) /* Indirect Branch Prediction Barrier */ >> >> #define CPUID_XSAVE_XSAVEOPT (1U << 0) > > Hi -- this seems like it will break compilation when we next > update our copy of the Linux kernel headers, because (as of > 4.17-rc6, at least), asm-x86/kvm_para.h doesn't define > KVM_HINTS_DEDICATED. For the moment I'm using this workaround (I wanted to do a header update for something else I'm working on): --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -48,6 +48,11 @@ #include "exec/memattrs.h" #include "trace.h" +/* Work around this kernel header constant changing its name */ +#ifndef KVM_HINTS_REALTIME +#define KVM_HINTS_REALTIME KVM_HINTS_DEDICATED +#endif + //#define DEBUG_KVM #ifdef DEBUG_KVM @@ -387,7 +392,7 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function, ret &= ~(1U << KVM_FEATURE_PV_UNHALT); } } else if (function == KVM_CPUID_FEATURES && reg == R_EDX) { - ret |= 1U << KVM_HINTS_DEDICATED; + ret |= 1U << KVM_HINTS_REALTIME; found = 1; } thanks -- PMM