From patchwork Wed Jun 7 20:35:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 104715 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp496571vqr; Wed, 7 Jun 2023 14:37:28 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6GbHkhtAQ0nHz1qw8PnwB5bO68CRZorHZ8hg/RFqGQoU6DDSNHmgR17HvXgPLFe8Afk9Yw X-Received: by 2002:a05:6a20:3d05:b0:10f:8798:9feb with SMTP id y5-20020a056a203d0500b0010f87989febmr2604788pzi.57.1686173848231; Wed, 07 Jun 2023 14:37:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686173848; cv=none; d=google.com; s=arc-20160816; b=P4c5VUhzjgRsLZB+cdUf1BdDHJNZiNyhGlqum1mmB7CUhZ1UQA+XQviWD5+sJd3QCQ QXNKQiSs50dVSTcJoK+I84gJnS2cTm2HW2cohzqE8kNPdfVmtZuXHs+M8vEjVONE9M4A KgKcOBXaDsgBQAjvBu4Tjl6MviOBoEuEBFQpOiCJ2SUJinmgaudN2ktLuqjNm1YG8njr k5X18W+sd6aUx8VyUqyl28H7Xji/U0MNkyNp6uIKVfnIhqWhEfckukK4yY+ea1C4WeH3 1+TXgk5QeCSp4ryWTh4uoZjaTPFm2vgN38mxPfzBJpzuJe2qslBUtuOCsF80W0vrMWXO S02g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=QKGNbuIRPOc0oEQDRY93/M6VINL0VW78jDwrnuqOT30=; b=irA/BLZFwx9Uu2wyXLxOjCYSK7ygyL9uDa+PHJ5nlzY+oAjMyWY8In8n5UAj65DsHN LXeyyT2ZKF3rXd1HmDeaYUJiJyYQj1/lGy4mFtYoMUPW1cwcPRzKWmJY1EyEt+Nkx5u3 BaOeCstx4Oq7/Fw9ZA9/RfwNmctxSplVUGlMOe+KnIRYFUCw/2bcxp3UYExGe1ew9sMy XBnus9au4PcwcK3DHiQkCLKM60Vdarmjorp9JpIMyj/Ru26f7Pq5bFZYnLMsxetQr5nQ mMkY39b34kS2CmoDmeBFh5OHoOR1GL8AysztWEPCg6o9XB8brFTBw7iKWCJsBbHEru4m mNZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=ZCeDl8WS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s6-20020a625e06000000b0065300b42889si1923363pfb.363.2023.06.07.14.37.02; Wed, 07 Jun 2023 14:37:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=ZCeDl8WS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233812AbjFGUfy (ORCPT + 99 others); Wed, 7 Jun 2023 16:35:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33800 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234023AbjFGUfh (ORCPT ); Wed, 7 Jun 2023 16:35:37 -0400 Received: from mail-pf1-x44a.google.com (mail-pf1-x44a.google.com [IPv6:2607:f8b0:4864:20::44a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E41D22134 for ; Wed, 7 Jun 2023 13:35:24 -0700 (PDT) Received: by mail-pf1-x44a.google.com with SMTP id d2e1a72fcca58-65a971d7337so733243b3a.1 for ; Wed, 07 Jun 2023 13:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686170124; x=1688762124; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=QKGNbuIRPOc0oEQDRY93/M6VINL0VW78jDwrnuqOT30=; b=ZCeDl8WSn650uNgAj+yEDQmfaZ8xkSCJMfbmlFPsuMX9pm89i/I/pi7VVwPhnkTS4M +KLDrmheKokh5oF82ijLJqNzIsvdWTs3bkCjpqfjy/ecWcNa/OsRUkLjSl0slVtyKd2h XS/aN4FY/t46GNIw/i5GqD7EehEdCdJxYZOp6ARkzbQ2k0AAWZJCjm4EqVpbKb27CWfh 1xx7X0C99xkGysIVUeq58EH2sygyCUztrR/HPQfuwJfvuJ2lKuVKhyc1ZiIhgTAPv6Fi bahA3y7GrwPLiVFYnk++lTRlPXmgRGx/2HqcAtaZURFDoqr+/TQe1GgqMHYNaa0V1xaZ occA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686170124; x=1688762124; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QKGNbuIRPOc0oEQDRY93/M6VINL0VW78jDwrnuqOT30=; b=PuuR6mseXGPu+tvXOw3o+Wn6FSC3HCZey9kZOryjtDPx81yCHtljgtLqCtuxItghYG 58FlJWslnXjE0Cqi+RptQfpSXFsaSBmW2AMr4ZBzUGmxOeoDK6r3zj9sh00Ev7bUE861 j0eX8xdW53AiVPToLtJgawWpDyR9maDiyjibT7w5MrMi5rvUYep2Pz215H5oTtkKeCG+ QuIAEyOAVFIj28o/wnsFJr/+hskGLCZDlApsh8lFETMFG9exH7/nkSFzN3XM/ezwhG6c 7PsTeYkooyNoBzSLTWk3qAg2yjX/A53SZm076C2he7CIruw0XrLbU4xyERoxXcuw1zJQ 1REw== X-Gm-Message-State: AC+VfDxC6lt0SqzE0CYsfI28DZXR1mylVmEOHRY6tnR/rUfxUIbnagVm yx2Y8tz2qFNdzUE7G95frQxSbd4D3Js= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:10:b0:662:129b:6a54 with SMTP id h16-20020a056a00001000b00662129b6a54mr45259pfk.1.1686170124101; Wed, 07 Jun 2023 13:35:24 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 7 Jun 2023 13:35:17 -0700 In-Reply-To: <20230607203519.1570167-1-seanjc@google.com> Mime-Version: 1.0 References: <20230607203519.1570167-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog Message-ID: <20230607203519.1570167-2-seanjc@google.com> Subject: [PATCH 1/3] KVM: SVM: Fix dead KVM_BUG() code in LBR MSR virtualization From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Luczaj , Yuan Yao X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768081429381650834?= X-GMAIL-MSGID: =?utf-8?q?1768081429381650834?= Refactor KVM's handling of LBR MSRs on SVM to avoid a second layer of case statements, and thus eliminate a dead KVM_BUG() call, which (a) will never be hit in the current code base and (b) if a future commit breaks things, will never fire as KVM passes "false" instead "true" or '1' for the KVM_BUG() condition. Reported-by: Michal Luczaj Cc: Yuan Yao Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/svm.c | 45 +++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index e265834fe859..b7d145571f75 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -947,43 +947,22 @@ static void svm_disable_lbrv(struct kvm_vcpu *vcpu) svm_copy_lbrs(svm->vmcb01.ptr, svm->vmcb); } -static int svm_get_lbr_msr(struct vcpu_svm *svm, u32 index) +static struct vmcb *svm_get_lbr_vmcb(struct vcpu_svm *svm) { /* - * If the LBR virtualization is disabled, the LBR msrs are always - * kept in the vmcb01 to avoid copying them on nested guest entries. - * - * If nested, and the LBR virtualization is enabled/disabled, the msrs - * are moved between the vmcb01 and vmcb02 as needed. + * If LBR virtualization is disabled, the LBR MSRs are always kept in + * vmcb01. If LBR virtualization is enabled and L1 is running VMs of + * its own, the MSRs are moved between vmcb01 and vmcb02 as needed. */ - struct vmcb *vmcb = - (svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK) ? - svm->vmcb : svm->vmcb01.ptr; - - switch (index) { - case MSR_IA32_DEBUGCTLMSR: - return vmcb->save.dbgctl; - case MSR_IA32_LASTBRANCHFROMIP: - return vmcb->save.br_from; - case MSR_IA32_LASTBRANCHTOIP: - return vmcb->save.br_to; - case MSR_IA32_LASTINTFROMIP: - return vmcb->save.last_excp_from; - case MSR_IA32_LASTINTTOIP: - return vmcb->save.last_excp_to; - default: - KVM_BUG(false, svm->vcpu.kvm, - "%s: Unknown MSR 0x%x", __func__, index); - return 0; - } + return svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK ? svm->vmcb : + svm->vmcb01.ptr; } void svm_update_lbrv(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); - bool enable_lbrv = svm_get_lbr_msr(svm, MSR_IA32_DEBUGCTLMSR) & - DEBUGCTLMSR_LBR; + bool enable_lbrv = svm_get_lbr_vmcb(svm)->save.dbgctl & DEBUGCTLMSR_LBR; bool current_enable_lbrv = !!(svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK); @@ -2795,11 +2774,19 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) msr_info->data = svm->tsc_aux; break; case MSR_IA32_DEBUGCTLMSR: + msr_info->data = svm_get_lbr_vmcb(svm)->save.dbgctl; + break; case MSR_IA32_LASTBRANCHFROMIP: + msr_info->data = svm_get_lbr_vmcb(svm)->save.br_from; + break; case MSR_IA32_LASTBRANCHTOIP: + msr_info->data = svm_get_lbr_vmcb(svm)->save.br_to; + break; case MSR_IA32_LASTINTFROMIP: + msr_info->data = svm_get_lbr_vmcb(svm)->save.last_excp_from; + break; case MSR_IA32_LASTINTTOIP: - msr_info->data = svm_get_lbr_msr(svm, msr_info->index); + msr_info->data = svm_get_lbr_vmcb(svm)->save.last_excp_to; break; case MSR_VM_HSAVE_PA: msr_info->data = svm->nested.hsave_msr; From patchwork Wed Jun 7 20:35:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 104724 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp498980vqr; Wed, 7 Jun 2023 14:43:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4se6sNvuwm534dzDdVSX+LChKXeDGEZ2cdg54pB7CqCq0Uwt32L6wLkudHSlLEXKNUd0VP X-Received: by 2002:a05:6a20:244f:b0:117:6b17:106f with SMTP id t15-20020a056a20244f00b001176b17106fmr2547170pzc.11.1686174181729; Wed, 07 Jun 2023 14:43:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686174181; cv=none; d=google.com; s=arc-20160816; b=qf76V/+rcjQEu5x74lzWJkDnxAbQxs8fKS/KJtDDunKF+TaLomdG4K3fYH+kHZ1Bp9 sLaTOurOKIpbvjVPQ6KGo8cgrgzPtMlXARNJxGhkz2stFpGF1PMc3JXsruihoxacijEC +dtliS4Fsyk5mZgw7m7VFfUwoqkGE6CAsA+8VTCA25XNcVkKS6Fee9KOzAO7avc5VIU0 WjdeKc/CJIv85YOlPfJotpgDSLdJcK7n58OOYUR6ezzpzIpSKDJRRumTtoN2VK/47cDy kIp3rvS1WjGY6TvYnOWfmYJ4j/ql+jk+4JK4vkPc+nF/pWCIvl+uKzPcHXapJAXqRFCo cADg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=DquDErYwSPFQFhe20Zbr/7qCAnoddW9Z0B+S6Q5Fhio=; b=iHLHI6PH7YQy+2ZWwzV850O2rF+iLV7sSdsoVoX8PUtG76HTbj2ANTfENgz36Sv/m1 NnM7r1Uk7MfocU40zoAfsmdpN9Ul5B1apHYbvhJHDKjwtMkCzzZtguhmh7eQ2uSSxkRv W99NBzCbQIicrCesmnXWW7X61WybpO1N47LXqLo7/2bXvf3xJY0JXFCrFVWhf+txKrjl iZuLww1W0eCmS04WM3Y/HGNdOkKf27pT4q2x4bbOymD+Yn8Ay17j8UnQC6b//xOydlV3 WR+nA5cB9jy/LqQv8pwUAzWwX3rgJ3RFqxMMeimsNA7zZVF0d1ohP6/w+3CweYCZfzj0 +hpQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=FWGwOMWt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h17-20020a056a00001100b00659145ce601si6157382pfk.401.2023.06.07.14.42.47; Wed, 07 Jun 2023 14:43:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=FWGwOMWt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234209AbjFGUgD (ORCPT + 99 others); Wed, 7 Jun 2023 16:36:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234051AbjFGUfk (ORCPT ); Wed, 7 Jun 2023 16:35:40 -0400 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85C8C2703 for ; Wed, 7 Jun 2023 13:35:26 -0700 (PDT) Received: by mail-pj1-x104a.google.com with SMTP id 98e67ed59e1d1-2564b3494baso2840929a91.1 for ; Wed, 07 Jun 2023 13:35:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686170126; x=1688762126; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=DquDErYwSPFQFhe20Zbr/7qCAnoddW9Z0B+S6Q5Fhio=; b=FWGwOMWthgPc7UaDciIlmjesryq0AK5GA+YXJcOdu9psUB2gPqYflrXJurDw3MfrmF xp0Z49eUO7QsMN3rNY0J1alAZYZVNzeP+Mu3QTZzSGz5fInRhB2bRA5IN7ibxTkvMdRO 0/Nxq+wibrs8faMQnqw7EmBrIRJSQDsulrVe1AkJ4Ceo58bipREb9vDr8AEuGoNE45y+ z01xOaiLmbXcd/KkH+qG8k2EmLGEo2cwH08QFZhwMckgO8uuNQbWIhSRFvTMcursA1IB 9d0mbPQsrJLjrc3trMUHYnTwkmGUaAwMlkrnfd7O147NByHy+8b4Fn89fdgNSE2izsDZ Edbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686170126; x=1688762126; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DquDErYwSPFQFhe20Zbr/7qCAnoddW9Z0B+S6Q5Fhio=; b=FMvQzp9h4vmy6Sjt2ebspU2TGyNVrr3yULyBsScDotDZ0Xc9nbrktG9BpUgy4T/lov zy6dgixowR4/G2uKtZFtf1MHdZkcc6iBm0cMPqDv6vM4C0JawJpO5AFsXqUDvGtMUHH1 3allGtIxvpmWpxD1oRxVJIyyasOOlGRa+Xx5BM9OKmN4VOFQiCJWxs8Pa7Qbz5G/K52G xkDhpylKHymtNo9oUO/WKc+s4XVq/MizzYAekgbFYXeTVEhtWcakjceAi3UD+5s2xIJl q7QEwyCMOXw3am2rE0hHcTa4F3grGrC4tP98SKkTid1DaywWupotKf0wlYrJaOYMbOwA LCoA== X-Gm-Message-State: AC+VfDzp1OQFvIJIdY5m2QkCKlCDoLa5JWZCKwThrRsj6SUoMiKrFSAN i6oFA5SDKM2knBclBRC1G6MtGNT+B6E= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:90b:907:b0:253:56ee:2172 with SMTP id bo7-20020a17090b090700b0025356ee2172mr1643711pjb.6.1686170125989; Wed, 07 Jun 2023 13:35:25 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 7 Jun 2023 13:35:18 -0700 In-Reply-To: <20230607203519.1570167-1-seanjc@google.com> Mime-Version: 1.0 References: <20230607203519.1570167-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog Message-ID: <20230607203519.1570167-3-seanjc@google.com> Subject: [PATCH 2/3] KVM: SVM: Clean up handling of LBR virtualization enabled From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Luczaj , Yuan Yao X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768081778566835278?= X-GMAIL-MSGID: =?utf-8?q?1768081778566835278?= Clean up the enable_lbrv computation in svm_update_lbrv() to consolidate the logic for computing enable_lbrv into a single statement, and to remove the coding style violations (lack of curly braces on nested if). No functional change intended. Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/svm.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index b7d145571f75..db97eca6c1ae 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -961,15 +961,10 @@ static struct vmcb *svm_get_lbr_vmcb(struct vcpu_svm *svm) void svm_update_lbrv(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); - - bool enable_lbrv = svm_get_lbr_vmcb(svm)->save.dbgctl & DEBUGCTLMSR_LBR; - - bool current_enable_lbrv = !!(svm->vmcb->control.virt_ext & - LBR_CTL_ENABLE_MASK); - - if (unlikely(is_guest_mode(vcpu) && svm->lbrv_enabled)) - if (unlikely(svm->nested.ctl.virt_ext & LBR_CTL_ENABLE_MASK)) - enable_lbrv = true; + bool current_enable_lbrv = svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK; + bool enable_lbrv = (svm_get_lbr_vmcb(svm)->save.dbgctl & DEBUGCTLMSR_LBR) || + (is_guest_mode(vcpu) && svm->lbrv_enabled && + (svm->nested.ctl.virt_ext & LBR_CTL_ENABLE_MASK)); if (enable_lbrv == current_enable_lbrv) return; From patchwork Wed Jun 7 20:35:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 104706 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp490117vqr; Wed, 7 Jun 2023 14:23:35 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5lup+cbPq2in59Qs9W2LuZtWXE5LZFsWCkfmwh9/dQxgqzY/mzTTu1/wEbJ04dQaXuDSCW X-Received: by 2002:a17:90a:cf01:b0:258:996c:a2e8 with SMTP id h1-20020a17090acf0100b00258996ca2e8mr2967978pju.5.1686173015413; Wed, 07 Jun 2023 14:23:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686173015; cv=none; d=google.com; s=arc-20160816; b=OsPRCo5r25j367ExNOXfVP485wf9QmZ9kkHfdpSbYgM29YA2suCY5ozhQKhScpzVzk fxG1hq0FOGm0O/GHbikmDBIZcN1nHv84ovMnsHSaBYVuLdu9gtg4UlH2M5Ps0ztOh8S8 GXA/F2GaOl15ORdODVErhHRFUIBUAS59QRnU25gMIJG9x7tfTjWUrBgmeRZjoBuZGX1B G28BVxSjO96z+z00nVG2fQBKIG+I/jX68Qa25qfIiV4bX5VMMCs0P6ujgFZazPEb1fAt WQ9VDTxk1h6JDAPR+hcjOfB5RcHixIdxk/LTeCygpUfgIP+XCM1hv/D2xJqb2cCEcLFg v6vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=jgGL3J+y4YYi/bcB6j3OZN64JX2gA8WjmgGOG10ljEs=; b=qexCzaoy9AeAZVhmX3lTqNYbvLE9DWKQ11a8akso+8ytHjhdcSdPbAUov3QUxuDbW9 CPzPLAwqVSmr5QtY2rS9e3MAdCPLJfpA1sGUxYddCVevWE0g3hBKfVaksQMHxhyqca+Z Q+4kGK9UUUk0i8GovFpgukXM/iAGE+bYaK74QscAFgSg2apTYCYeaMArSOkCXmc7KJ7E Qet241iSlEPgZgU6/sDkjOcxjAJyieA+yJz7J1kJ3x3sGsNJD9XkCyNbWte90Rg8X1UA TpR5LCpLySaCHuvL5A0kK6Xa2MINRhToSdHZqZMnarqaG854xf24udnY9ajhMXCFUQc3 UvfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=FtBRDqEh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nn5-20020a17090b38c500b0025346cf794dsi1705515pjb.134.2023.06.07.14.23.22; Wed, 07 Jun 2023 14:23:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=FtBRDqEh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234163AbjFGUf7 (ORCPT + 99 others); Wed, 7 Jun 2023 16:35:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234064AbjFGUfn (ORCPT ); Wed, 7 Jun 2023 16:35:43 -0400 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41393269E for ; Wed, 7 Jun 2023 13:35:28 -0700 (PDT) Received: by mail-pg1-x549.google.com with SMTP id 41be03b00d2f7-5428d1915acso645596a12.0 for ; Wed, 07 Jun 2023 13:35:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686170128; x=1688762128; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=jgGL3J+y4YYi/bcB6j3OZN64JX2gA8WjmgGOG10ljEs=; b=FtBRDqEhDT9q55n0xQR6Rf5ieQVZhE5Cnn1NvZJ/TW8wF2Xyb/C4lAicVY8vUnhIZD zPBOufIPplRK+DIZYdrQOiMeEqGn4V6di7knmWJpsclovsxrV3RFThS1t7e4tDAQp1y6 HGEVhQ+nPGLIquEqvsomGP/LYHdgnPMONWxL3P8HWN/96ixdKk6p3lNk3mdc35g+rOC9 fubFNxCLRgEoBBguaAQiaKRSmcWPm3jJvKDLz7sCO+kiX64y6H4TYjtGVqqBDhED3Wrn jBcTblIf5gIIukhkejMk2chPPJBVy/svUYv+fo6l8m0qpRfVkPx3+LO44CpRDKsFyzqW e9CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686170128; x=1688762128; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jgGL3J+y4YYi/bcB6j3OZN64JX2gA8WjmgGOG10ljEs=; b=PJanm6DhGPgF/pIM9bogpsw+12P2ARo+3EmDhhE/K++bd98zLw+Cop4R01qfugAwGQ ruvr9vbrMDW8boImx7DW4ruHLwO6Cgqb73qxywqG+r6clLtbFNRQI9YX0/71xzaN4m2M UAYSJIq8wrpBixocGAta6F5gfhozqqZJ9iWiNRuSNmN4i4mPAkL1/ezgv4wqmVSzi4Gl 3wCKbB4z7UTH+LMbwMaWECcrQrMLLpqUuWqlEvmknin8ZBmqsTUS1fXresDJlXZKeDUR nieT6ARd2G5uUv3CF67i820zGPpu0DKV1tgeKPtZl+Eca+a3BWFs0yEqRAVdZrDaaDx4 wFZA== X-Gm-Message-State: AC+VfDzr/aGroruayV+oUShFKo7+pk2WP8PPFm4zJu9ig1/uuVUzEnMT /qN6p+pIJ9Ulwy2Vuy0ffUokoLKnVwk= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a65:6c0e:0:b0:53f:9a37:c199 with SMTP id y14-20020a656c0e000000b0053f9a37c199mr33964pgu.1.1686170127719; Wed, 07 Jun 2023 13:35:27 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 7 Jun 2023 13:35:19 -0700 In-Reply-To: <20230607203519.1570167-1-seanjc@google.com> Mime-Version: 1.0 References: <20230607203519.1570167-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog Message-ID: <20230607203519.1570167-4-seanjc@google.com> Subject: [PATCH 3/3] KVM: SVM: Use svm_get_lbr_vmcb() helper to handle writes to DEBUGCTL From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Luczaj , Yuan Yao X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768080555890086900?= X-GMAIL-MSGID: =?utf-8?q?1768080555890086900?= Use the recently introduced svm_get_lbr_vmcb() instead an open coded equivalent to retrieve the target VMCB when emulating writes to MSR_IA32_DEBUGCTLMSR. No functional change intended. Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/svm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index db97eca6c1ae..b700de261ce8 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3012,13 +3012,8 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) if (data & DEBUGCTL_RESERVED_BITS) return 1; - if (svm->vmcb->control.virt_ext & LBR_CTL_ENABLE_MASK) - svm->vmcb->save.dbgctl = data; - else - svm->vmcb01.ptr->save.dbgctl = data; - + svm_get_lbr_vmcb(svm)->save.dbgctl = data; svm_update_lbrv(vcpu); - break; case MSR_VM_HSAVE_PA: /*