Received: by 2002:a05:6358:700f:b0:131:369:b2a3 with SMTP id 15csp2906899rwo; Thu, 3 Aug 2023 17:44:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGc70d0SXNs21i1CR3GI45aUfAuju/NuvQ0i5SpK5S3u5Qcro/PXCry4pnY1mfAzGG9LlpN X-Received: by 2002:a17:902:8c88:b0:1bb:c87d:756d with SMTP id t8-20020a1709028c8800b001bbc87d756dmr276441plo.42.1691109869382; Thu, 03 Aug 2023 17:44:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691109869; cv=none; d=google.com; s=arc-20160816; b=V/IoIm0OMeDX/N/XHmXzP0OpdPkOSJ/PpJWUWB049UqJjpyQW17Vi4UVvNTu20yqfT jYAQAaZycFEUtb4TmbTLwLLlxL0a5PME4VVSjACc/3D2MHaUTmrpzVCi5g50dBj6uyLd RD44Mi4P1Mw2RFDiTm8s3aA06/LQ2SVrO4eWtS4mkFiT2DPQPqFK8W8WfyqknwBq21hd /1dzcCgo7vAobCyqhUwv3DaZmwyIgiBwpCSBrCv4xj6ExksrdRiIejtyprGY6ZD9t5bg Fc5QQ11XGOn0aOovvBR6UGj58xMzjmzMl/F61y+VNvLGgWtDohwdd52k9SDBRd/FUCrB OQ4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=OP8pAkGmqcoifyAHKkznCuAfpusO15WSf6dYYfXbnWE=; fh=1Kboyic3t03GgCVuLv0rhGEZBmu4lIiyjGB9RhlNZJI=; b=J2Gt5clcT2bylmuCXNnNDxsAkFXPkMA9HCHradF2CeuJ1mVJUkFMhRJxTkn+MzOlAD KLe70P0anApSCoFpCTakUfR1RdUUblB1+vREcvwzb6mR+w609uu1Qtsj6pxtpPNlTFM+ aKrEA1vSxbmx5cfKbQ8GnkXUWfOl9iBZLlQATBB2twMmgTxS/s+nyCDE3XxjWHh4E3uc o9S3GOeKowRJ3CiWWFD5xoFmCYwgrQ1s9jT121O+OGeyba6FDpOHXz9ijoDWb1HmhXjR k6IxCClTCasFVuIw5m7m0hxovw30qDa2VX+JZAVLOeN+cS6fetQNGF3PB3uTwuJKPovS +Cpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=PgXXxzGz; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c8-20020a170903234800b001b25e9a76d7si904542plh.316.2023.08.03.17.44.17; Thu, 03 Aug 2023 17:44:29 -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=@gmail.com header.s=20221208 header.b=PgXXxzGz; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231455AbjHCXuX (ORCPT + 99 others); Thu, 3 Aug 2023 19:50:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229880AbjHCXuV (ORCPT ); Thu, 3 Aug 2023 19:50:21 -0400 Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 703E81718; Thu, 3 Aug 2023 16:50:20 -0700 (PDT) Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-686fc0d3c92so1113963b3a.0; Thu, 03 Aug 2023 16:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691106620; x=1691711420; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=OP8pAkGmqcoifyAHKkznCuAfpusO15WSf6dYYfXbnWE=; b=PgXXxzGzaAwUtIpzTTXbsZnBtS76iQFwC1R3DmeSTZdbZJKnoq6FG+qIJfa0ga1hl5 TWCOeqIovBS4gZMFFwmjAb5gYwdZSBDwkKzMqBDZI6rZpTSnZjZhbM2sws+XtC3BQu16 F3bEEb6TMl7dhdkyDVhVaBfbLf6FSsiDjbQd/gg4iQFuNf736eah9lWpOuFQ+Ftd1c6u rSRZI7+FyciRYDmW3pLArfl9uM9HecVmp5Qk84Vf0FnlTBDAL7G5t5EmeVy87oRkcDiW +4XQwEh9SShZN/bTn2OqthQfTWpjgWmkfz8CkoxAZG0yOqla4DJ66IppVflWDBg9kyyN UUEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691106620; x=1691711420; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OP8pAkGmqcoifyAHKkznCuAfpusO15WSf6dYYfXbnWE=; b=LiHovXKAiNK727rql1qXS4sHB9tAz3Ma8Hn7Eh3awJZNTdkPGSPQ5/jf3U9eEOL2hO 8W+tfOegITLv76RpjU5Imnnqs7OyLPsvDg4wupvWEKpQez6cHGP5xdb3cNeBCd13/aGU BPe6ZW9D55zvxBpcFlQcFP8wUm+GaVvecj2tITugRwg+urynl13OqwJcOJa6bWx+pQ1P 1RrFRdT2frZUdogLybMobk5CaDSLvKXRAfSlI5zGEkqt2/7HqAOUy+ARNtb78gQ5ANfy RYBsE53lW8UHguDtpg1cBvM105tBnOOUEnMKD82NUAOBwrr9NIlbnBb4XAmytStt3kK4 xAYg== X-Gm-Message-State: AOJu0YxOSOFEFZoqY5qmcotcDvXulGRmPlAi9wSxbXKxD0WMzVVHwv+X oBdE2xNClppKpFJRUEbQcbU= X-Received: by 2002:a05:6a00:14d5:b0:680:252d:da3e with SMTP id w21-20020a056a0014d500b00680252dda3emr208073pfu.5.1691106619663; Thu, 03 Aug 2023 16:50:19 -0700 (PDT) Received: from localhost ([192.55.55.51]) by smtp.gmail.com with ESMTPSA id c23-20020a62e817000000b0068783a2dfdasm367609pfi.104.2023.08.03.16.50.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Aug 2023 16:50:19 -0700 (PDT) Date: Thu, 3 Aug 2023 16:50:17 -0700 From: Isaku Yamahata To: Sean Christopherson Cc: Paolo Bonzini , Zhenyu Wang , Zhi Wang , kvm@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, Yan Zhao , Yongwei Ma , Ben Gardon , isaku.yamahata@gmail.com Subject: Re: [PATCH v4 12/29] KVM: x86/mmu: Move kvm_arch_flush_shadow_{all,memslot}() to mmu.c Message-ID: <20230803235017.GA2257301@ls.amr.corp.intel.com> References: <20230729013535.1070024-1-seanjc@google.com> <20230729013535.1070024-13-seanjc@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20230729013535.1070024-13-seanjc@google.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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 Fri, Jul 28, 2023 at 06:35:18PM -0700, Sean Christopherson wrote: > Move x86's implementation of kvm_arch_flush_shadow_{all,memslot}() into > mmu.c, and make kvm_mmu_zap_all() static as it was globally visible only > for kvm_arch_flush_shadow_all(). This will allow refactoring > kvm_arch_flush_shadow_memslot() to call kvm_mmu_zap_all() directly without > having to expose kvm_mmu_zap_all_fast() outside of mmu.c. Keeping > everything in mmu.c will also likely simplify supporting TDX, which > intends to do zap only relevant SPTEs on memslot updates. Yes, it helps TDX code cleaner to move mmu related function under mmu.c. Reviewed-by: Isaku Yamahata Thanks, > > No functional change intended. > > Suggested-by: Yan Zhao > Tested-by: Yongwei Ma > Signed-off-by: Sean Christopherson > --- > arch/x86/include/asm/kvm_host.h | 1 - > arch/x86/kvm/mmu/mmu.c | 13 ++++++++++++- > arch/x86/kvm/x86.c | 11 ----------- > 3 files changed, 12 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 28bd38303d70..856ec22aceb6 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -1832,7 +1832,6 @@ void kvm_mmu_zap_collapsible_sptes(struct kvm *kvm, > const struct kvm_memory_slot *memslot); > void kvm_mmu_slot_leaf_clear_dirty(struct kvm *kvm, > const struct kvm_memory_slot *memslot); > -void kvm_mmu_zap_all(struct kvm *kvm); > void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen); > void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned long kvm_nr_mmu_pages); > > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index ec169f5c7dce..c6dee659d592 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -6732,7 +6732,7 @@ void kvm_mmu_slot_leaf_clear_dirty(struct kvm *kvm, > */ > } > > -void kvm_mmu_zap_all(struct kvm *kvm) > +static void kvm_mmu_zap_all(struct kvm *kvm) > { > struct kvm_mmu_page *sp, *node; > LIST_HEAD(invalid_list); > @@ -6757,6 +6757,17 @@ void kvm_mmu_zap_all(struct kvm *kvm) > write_unlock(&kvm->mmu_lock); > } > > +void kvm_arch_flush_shadow_all(struct kvm *kvm) > +{ > + kvm_mmu_zap_all(kvm); > +} > + > +void kvm_arch_flush_shadow_memslot(struct kvm *kvm, > + struct kvm_memory_slot *slot) > +{ > + kvm_page_track_flush_slot(kvm, slot); > +} > + > void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen) > { > WARN_ON(gen & KVM_MEMSLOT_GEN_UPDATE_IN_PROGRESS); > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index a6b9bea62fb8..059571d5abed 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -12776,17 +12776,6 @@ void kvm_arch_commit_memory_region(struct kvm *kvm, > kvm_arch_free_memslot(kvm, old); > } > > -void kvm_arch_flush_shadow_all(struct kvm *kvm) > -{ > - kvm_mmu_zap_all(kvm); > -} > - > -void kvm_arch_flush_shadow_memslot(struct kvm *kvm, > - struct kvm_memory_slot *slot) > -{ > - kvm_page_track_flush_slot(kvm, slot); > -} > - > static inline bool kvm_guest_apic_has_interrupt(struct kvm_vcpu *vcpu) > { > return (is_guest_mode(vcpu) && > -- > 2.41.0.487.g6d72f3e995-goog > -- Isaku Yamahata