Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp438139imm; Thu, 6 Sep 2018 05:04:11 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZQgLtJ6cZ/E9Alf++D6x7EoGmlI4yKA6DeB5LeNILb4BoX+M3VlxICCOnQheoTFOiSkmSZ X-Received: by 2002:a17:902:f096:: with SMTP id go22mr2325141plb.183.1536235451536; Thu, 06 Sep 2018 05:04:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536235451; cv=none; d=google.com; s=arc-20160816; b=Pmzrb4k4SIoE4PxhFItfKYkPtwtbgj4M7HBUebWeXNIQiLD4r4GuPqKkdjA9br1Ocb P/LjuOjjl8dUxS2UouBJKs2Agrgl2CxKOz5kQ3uiQKWq4NfkuOlBDS9Ip29aGs2cHygA HEC7RtJFSLWAgA1wsHTc1Ebiqf9Jrc9WVs/fHMzazrNDOfGVOIE2abh3R8f0hQ+cgmul pbpw3uSUoZEF21691IJgcWJKVu5j0l4bJXaeSkV2zET4x/TMXzltbpD5bUZuLlmQuiF5 LdfZCh54hd2J0c5CCzvc+vloYeoEwaEu96mWaxPFwtdzdhwkPQOxut2/w2ch6h4GTEpy scHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=S2+6Ri/CVrz8xPxr/fsJGbiWlNYpivlJHYEs4H1x+1o=; b=zGZoQ5Kg8lAYZmvVnnd29kHJq2b5HAUYZEpKQAwGCWpMpqPL1L4/0TCtfLrHj95+6i utKoQP4yEGrvn9dC4B9Aa6CDb99c9QeI4keIltzTV+AZiUNVDaegbPd//PmRKPmpmoEc C6rXrDigfFU2aaAjzF5V/eANioFGlTy5vUY4YgIWs4iyP7YwO3czAjkqs0qtdHEaeB25 OHNX6SGT1G5ZMeJGFNs5+5wczxl0qRfF4eUvcRuuCtzsCiK7Xp0coDfwa7THszAcLVzP wdDLV+i0JD2sTXLGBIaFPWHkyKUmx9ArpOgR/1oZ/G0wI29ZwPiOtq5SrCLJ2sMbZFYC nsig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x6-v6si4751463pge.100.2018.09.06.05.03.55; Thu, 06 Sep 2018 05:04:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728094AbeIFQgR (ORCPT + 99 others); Thu, 6 Sep 2018 12:36:17 -0400 Received: from mga18.intel.com ([134.134.136.126]:62809 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726436AbeIFQgR (ORCPT ); Thu, 6 Sep 2018 12:36:17 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Sep 2018 05:00:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,338,1531810800"; d="scan'208";a="71046737" Received: from devel-ww.sh.intel.com ([10.239.48.110]) by orsmga008.jf.intel.com with ESMTP; 06 Sep 2018 05:00:51 -0700 From: Wei Wang To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, pbonzini@redhat.com, ak@linux.intel.com Cc: kan.liang@intel.com, peterz@infradead.org, mingo@redhat.com, rkrcmar@redhat.com, like.xu@intel.com, wei.w.wang@intel.com Subject: [PATCH v2 2/8] KVM/x86: KVM_CAP_X86_GUEST_LBR Date: Thu, 6 Sep 2018 19:30:50 +0800 Message-Id: <1536233456-12173-3-git-send-email-wei.w.wang@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1536233456-12173-1-git-send-email-wei.w.wang@intel.com> References: <1536233456-12173-1-git-send-email-wei.w.wang@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Introduce KVM_CAP_X86_GUEST_LBR to allow per-VM enabling of the guest lbr feature. Signed-off-by: Like Xu Signed-off-by: Wei Wang Cc: Paolo Bonzini Cc: Andi Kleen --- arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/x86.c | 5 +++++ include/uapi/linux/kvm.h | 1 + 3 files changed, 7 insertions(+) diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 00ddb0c..5db5ba3 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -822,6 +822,7 @@ struct kvm_arch { gpa_t wall_clock; + bool guest_lbr; bool mwait_in_guest; bool hlt_in_guest; bool pause_in_guest; diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 506bd2b..3eaf1b8 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -2927,6 +2927,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_SPLIT_IRQCHIP: case KVM_CAP_IMMEDIATE_EXIT: case KVM_CAP_GET_MSR_FEATURES: + case KVM_CAP_X86_GUEST_LBR: r = 1; break; case KVM_CAP_SYNC_REGS: @@ -4350,6 +4351,10 @@ static int kvm_vm_ioctl_enable_cap(struct kvm *kvm, kvm->arch.pause_in_guest = true; r = 0; break; + case KVM_CAP_X86_GUEST_LBR: + kvm->arch.guest_lbr = true; + r = 0; + break; default: r = -EINVAL; break; diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 07548de..7cf9bc0 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -952,6 +952,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_S390_HPAGE_1M 156 #define KVM_CAP_NESTED_STATE 157 #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 +#define KVM_CAP_X86_GUEST_LBR 159 #ifdef KVM_CAP_IRQ_ROUTING -- 2.7.4