Received: by 2002:a05:6358:701b:b0:131:369:b2a3 with SMTP id 27csp2580309rwo; Sun, 23 Jul 2023 19:33:22 -0700 (PDT) X-Google-Smtp-Source: APBJJlGFgKSm7xRnYfAA9BjkmaX4dfr8Kn46KOunZCB8WPlRkTmmCsSlrC820pEeKL6ZWA5bQQQZ X-Received: by 2002:a17:90b:812:b0:268:ee6:6bdf with SMTP id bk18-20020a17090b081200b002680ee66bdfmr2541867pjb.47.1690166002413; Sun, 23 Jul 2023 19:33:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690166002; cv=none; d=google.com; s=arc-20160816; b=diHLXZ2NxkP4E/oqE46WeQzpWGiFpz5m5ZOVMGcdY2Aar4tLqVIYgidA5dK7osSq8D 0aIbN3oGJjGXCXC1NeMPW2bMRcXwT3j4+uBuY8UzfFrv2Z+JcT+I+brvLbn4OXFJlZOM hco3auzNrICXznNO5qi8myEEreT+Dih45GAZZohV+h1PB7OVzlqYmpkkB2TyV++Dj5HE 2KkfbZYcY8h+duvDPd6oRXM2P97me7xFSQczYl2ezYmVCebZEgdnT6OqaJIRXDRwOqCa Ly/FebuuFxbRPTpv8Ps5kl65f71drqiehs4knTgVKnURwK33Fti8R1+6/d754HeEazlz ym+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id :dkim-signature; bh=cu37L8D1bvnkJt/+kGKx4pv9EW32/I+JVGKyiKetbVc=; fh=TEnt42bs+3K7Me2vy5CeInyNvy9pzi6UiGn8ayLmDLA=; b=dy3uTnciz12h3IcDUF57NzpnYy5ZTAlb6pyvSTNktG8jEi2DU2337AuGrm5BehJize weGeqT+CKr3UEoGGQIn4LYjrHMRYXoRaWKIJX2YmiaKBSUYJIUVJSOX0V350K4hwWrLZ HxSpriMilkGRXHlZ/U/DjSdUzW6BWDsJAmG0Jx5/rzcNx1/dnGZuYjhT27kfjZ4dtL+S tQQuHaDXPyAoBCkxiha5+rouh4opgLLSAGKe+1HXc+nhKS9+migxyiFMXbA1ngPHqo9C 8c04Md28T+acwRJp1VZ2j3eBdOluhm6uDqY0zm3Qii6i0cCYiY031hr4p7iIRw3oIEbn z/eg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="fvke2/zZ"; 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=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f10-20020a63de0a000000b0055bce775e67si8128327pgg.159.2023.07.23.19.33.09; Sun, 23 Jul 2023 19:33:22 -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=@intel.com header.s=Intel header.b="fvke2/zZ"; 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=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231992AbjGXCMk (ORCPT + 99 others); Sun, 23 Jul 2023 22:12:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232024AbjGXCM1 (ORCPT ); Sun, 23 Jul 2023 22:12:27 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 159A15269; Sun, 23 Jul 2023 19:08:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690164535; x=1721700535; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=tl4MlhnuH+gxd1QJIB7HxSdpTHBpYZOJ42p6SMXaSlc=; b=fvke2/zZzgPz2ahbQsyWl65J14TcL4Tm3xe0hdXKbSxkJ2eYQ2m08QvP dkhHXqxf+6NGu7Jhf2cXM5qj7j4PAq+X/27Wt3ONfz3TeoHQBzCzkpYHD rDA9lA8Ti3aGRsgf9IJJXeVAnmrMwzlr70ekpo2p/sijdTkqwiIFm2Rus MqaKQg2XmQIuviVILDN0Z8phE1Uoyf64Ntrp69W5yIlyTjvg8uihrWlhf rVmj8a9pe8gizUTDHudp5V77j0oLaPb3C0gXFa2i0vrXv4dXiEfzfw2jT vyCv7EbwuN/K2ZZ+vH1PsJRmOBJO74QDBNgaIfdInE0T+L3ScaIyf/aHp Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10780"; a="367357843" X-IronPort-AV: E=Sophos;i="6.01,228,1684825200"; d="scan'208";a="367357843" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2023 19:07:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10780"; a="760613679" X-IronPort-AV: E=Sophos;i="6.01,228,1684825200"; d="scan'208";a="760613679" Received: from binbinwu-mobl.ccr.corp.intel.com (HELO [10.238.9.27]) ([10.238.9.27]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2023 19:07:51 -0700 Message-ID: <6086d09d-f218-d962-18dc-7b1a0390f258@linux.intel.com> Date: Mon, 24 Jul 2023 10:07:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v10 2/9] KVM: x86: Add & use kvm_vcpu_is_legal_cr3() to check CR3's legality To: Sean Christopherson Cc: Isaku Yamahata , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, pbonzini@redhat.com, chao.gao@intel.com, kai.huang@intel.com, David.Laight@aculab.com, robert.hu@linux.intel.com, guang.zeng@intel.com References: <20230719144131.29052-1-binbin.wu@linux.intel.com> <20230719144131.29052-3-binbin.wu@linux.intel.com> <20230720235352.GH25699@ls.amr.corp.intel.com> From: Binbin Wu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE 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 On 7/21/2023 11:03 PM, Sean Christopherson wrote: > On Fri, Jul 21, 2023, Binbin Wu wrote: >> >> On 7/21/2023 7:53 AM, Isaku Yamahata wrote: >>> On Wed, Jul 19, 2023 at 10:41:24PM +0800, >>> Binbin Wu wrote: >>> >>>> Add and use kvm_vcpu_is_legal_cr3() to check CR3's legality to provide >>>> a clear distinction b/t CR3 and GPA checks. So that kvm_vcpu_is_legal_cr3() >>>> can be adjusted according to new feature(s). >>>> >>>> No functional change intended. >>>> >>>> Signed-off-by: Binbin Wu >>>> --- >>>> arch/x86/kvm/cpuid.h | 5 +++++ >>>> arch/x86/kvm/svm/nested.c | 4 ++-- >>>> arch/x86/kvm/vmx/nested.c | 4 ++-- >>>> arch/x86/kvm/x86.c | 4 ++-- >>>> 4 files changed, 11 insertions(+), 6 deletions(-) >>>> >>>> diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h >>>> index f61a2106ba90..8b26d946f3e3 100644 >>>> --- a/arch/x86/kvm/cpuid.h >>>> +++ b/arch/x86/kvm/cpuid.h >>>> @@ -283,4 +283,9 @@ static __always_inline bool guest_can_use(struct kvm_vcpu *vcpu, >>>> return vcpu->arch.governed_features.enabled & kvm_governed_feature_bit(x86_feature); >>>> } >>>> +static inline bool kvm_vcpu_is_legal_cr3(struct kvm_vcpu *vcpu, unsigned long cr3) >>>> +{ >>>> + return kvm_vcpu_is_legal_gpa(vcpu, cr3); >>>> +} >>>> + >>> The remaining user of kvm_vcpu_is_illegal_gpa() is one left. Can we remove it >>> by replacing !kvm_vcpu_is_legal_gpa()? >> There are still two callsites of kvm_vcpu_is_illegal_gpa() left (basing on >> Linux 6.5-rc2), in handle_ept_violation() and nested_vmx_check_eptp(). >> But they could be replaced by !kvm_vcpu_is_legal_gpa() and then remove >> kvm_vcpu_is_illegal_gpa(). >> I am neutral to this. > I'm largely neutral on this as well, though I do like the idea of having only > "legal" APIs. I think it makes sense to throw together a patch, we can always > ignore the patch if end we up deciding to keep kvm_vcpu_is_illegal_gpa(). OK. Thanks for the advice. Should I send a seperate patch or add a patch to remove kvm_vcpu_is_illegal_gpa() in next version?