From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87C29C001E0 for ; Thu, 20 Jul 2023 01:16:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BE7602800A2; Wed, 19 Jul 2023 21:16:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B70A628004C; Wed, 19 Jul 2023 21:16:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9EAC32800A2; Wed, 19 Jul 2023 21:16:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 8960228004C for ; Wed, 19 Jul 2023 21:16:17 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 581291C8F91 for ; Thu, 20 Jul 2023 01:16:17 +0000 (UTC) X-FDA: 81030224394.15.8EE544A Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf28.hostedemail.com (Postfix) with ESMTP id 7CC94C0002 for ; Thu, 20 Jul 2023 01:16:14 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SLjPWPSU; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf28.hostedemail.com: domain of yuan.yao@linux.intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=yuan.yao@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689815775; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=B5oWrN3vHgnztM4IoSYQbydDy1Gm2FPXJHEts150Bgk=; b=ul2//7UBT9CWpQGnry/07G5R2f4P5dtZhKBesuk4Ax4ifTMFW6+vDO8mriaQj/QGJRFlcp j/69o+H7OQ1QPpRe7QA//0v/jqeW6B4bx5kQN6jfwRNXHNi3JtlC7AOu04aR6+QZNR130Q 8pQI86osIvKu5XrgspLf/Kb2OOQrm4A= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SLjPWPSU; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf28.hostedemail.com: domain of yuan.yao@linux.intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=yuan.yao@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689815775; a=rsa-sha256; cv=none; b=7FPmOtB1xcIvkzb39p9fzkfLFbQXuCchlbDH/1kbf/scjv78+rmC4bf/0vSS35M72AQIUn bKhHYfAq82x/lVhe35dvKkx6J48+JogkO8iYAQxhJ+52d+8V0DdYX+LQaNNtCE8qu4htLe YXwsQV0Cua9KuD1J7YGtHszE35VwGNI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689815774; x=1721351774; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=0X3B3RFBvIohiBDiMK6hMbRCxfxPASWhBjQpW8WFunc=; b=SLjPWPSUiO9yytw6Qoo5qxryie50YzcJA8vOFvIfty4XoWpEO/Mb2YsF j0R4OoiwtPxhU0pjiTpZp6bWwgbjZ76TBeAW8xIU5cz2G99RePqkIB85t tVpSxK6JIE6EsQeXSymm84oJ69RtcnQb/wdTrGsRf4AZJ+rgI6WB8qWrc 3t6no3hdZb5efqb6pLgQSYpfPWFBrazxg19CKXS6JN8CMdPkHgZYI8YvB 6TG+9dC1XwE6K+YA/ZBwapG/FyYAErE6K+EhFAVWDtdTCuBbXHzetXQJ7 1IhDYXV3GTyNbm1jAVH/NMLFj9rzNMUdQl9Sirorc5bW1oF1XERHSvgW4 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10776"; a="364065929" X-IronPort-AV: E=Sophos;i="6.01,216,1684825200"; d="scan'208";a="364065929" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jul 2023 18:16:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10776"; a="674516361" X-IronPort-AV: E=Sophos;i="6.01,216,1684825200"; d="scan'208";a="674516361" Received: from yy-desk-7060.sh.intel.com (HELO localhost) ([10.239.159.76]) by orsmga003.jf.intel.com with ESMTP; 19 Jul 2023 18:15:44 -0700 Date: Thu, 20 Jul 2023 09:15:41 +0800 From: Yuan Yao To: Sean Christopherson Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , "Matthew Wilcox (Oracle)" , Andrew Morton , Paul Moore , James Morris , "Serge E. Hallyn" , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Chao Peng , Fuad Tabba , Jarkko Sakkinen , Yu Zhang , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , Vlastimil Babka , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Subject: Re: [RFC PATCH v11 05/29] KVM: Convert KVM_ARCH_WANT_MMU_NOTIFIER to CONFIG_KVM_GENERIC_MMU_NOTIFIER Message-ID: <20230720011541.6ti5sygwwfwko6ab@yy-desk-7060> References: <20230718234512.1690985-1-seanjc@google.com> <20230718234512.1690985-6-seanjc@google.com> <20230719073115.vuedo2cf3mp27xm4@yy-desk-7060> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20171215 X-Rspamd-Queue-Id: 7CC94C0002 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: e7u1grraqdr1958egnrthws1anpafob4 X-HE-Tag: 1689815774-969531 X-HE-Meta: U2FsdGVkX1/bKf/1zkJaIC43UO4b8TvvzEKdnHsqX6lSVJKvlYeKqgZbNO2EpSevUgDZfoI5s4uPmsYgSuX1ZZ17Vo65l+oRy6GzVEXT0xyxuZWl5ubwnG2PwsHMpVVqzdESrKwapHevDV5+mPz+RC88trQrHGFuqCdnxVS2q4J/uitcwyFtGhrB7bS58uCvomJSpN4aDQ9oseOlScQGO3yhB+v1BT+PpTx/ANN9bPXjgtio/ljwXK5mmDJALFNFXqJtWtDzOg38xAsqVPbh7YA++AgXXKzFKbf17TX8JRXavjW2eTyMZlOVDyupWOO5G/QBJl9cxKUZEeYM7yX3xLNAAST73airX84gpt/V4hzmVuv1+drR+Tj2gm1bmRKrw/33sAGGX1UvR7pht5QMVUANTwpu2F+7g9P/8q9B7prc3Olf3PofBeSA//FqxuR+rMMmSDKcuFGCpSM1DLYq0ArAiHo0JEtKgOTgnjU3q8qrPzyzQKw0jz5phabFYmsjjAKE8Jw7x236UFclZTux7vEyKtJ1zRNkAkLwB2X2A0uAbPN1vMNiarCz+KvclFRBp+xe8oTisP5hVSksZw/GHyUpjk3/V8KcMDwPh5HthXW2Vs659z5rykGwC9PQDKTUKq3CpSukUAFfhHKH0Ul9EldpXdBXJ2ksJu6staj+ZJHfraUJv2dT/lUAWMgcAssTijtOx1mNiYUw6/tYqYOCID4V+5DvNt4xsHR5qLHoyel5f/Aq2h0kUmeLD1HEMyu4kcs4bwBEH4hAmIAMdkykmoHWPFHVxl/27JrXWrEKwAHoa7ZA8DIl2RRTh66ZOyzI+1/lbuN4pUsKfs3MU2+UJ0soGh6gCkT3qKTnaJhJKlg8fFlLaXeGtvlLYmCYQGyIlUtMFZCRLt/iOGKe8J6X+4vGGJAHy4J9g03ZoaqxUepzf2J/i3Z7wUdPsKPXHaTYSvOe2QqFbxX+8Nn5U3n QZKhyBOY uKkNhAcC96a95pzfK4T0C+WcycXU4OMV6Q/CaeBCKhrWAug11hUjv+g6zifIKS2YZy+w6A00r2qCJgaqqBsxzcEGG11+otwsfV821tvz5xIU+RV59gi/sqhBkshxYit8HC/7IkgYA559ifFOukXQRdR4H6+KwjBroK82xqVYq5KVxzAWxkBx8onQT0gOFWQ4KgKUAsW4nv9u+y4kwNPtyick4SpmrZvZXV8W2h3FywpWvFzm5UBSjTCFu+g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Jul 19, 2023 at 07:15:09AM -0700, Sean Christopherson wrote: > On Wed, Jul 19, 2023, Yuan Yao wrote: > > On Tue, Jul 18, 2023 at 04:44:48PM -0700, Sean Christopherson wrote: > > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > > > index 90a0be261a5c..d2d3e083ec7f 100644 > > > --- a/include/linux/kvm_host.h > > > +++ b/include/linux/kvm_host.h > > > @@ -255,7 +255,9 @@ bool kvm_setup_async_pf(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, > > > int kvm_async_pf_wakeup_all(struct kvm_vcpu *vcpu); > > > #endif > > > > > > -#ifdef KVM_ARCH_WANT_MMU_NOTIFIER > > > +struct kvm_gfn_range; > > > > Not sure why a declaration here, it's defined for ARCHs which defined > > KVM_ARCH_WANT_MMU_NOTIFIER before. > > The forward declaration exists to handle cases where CONFIG_KVM=n, specifically > arch/powerpc/include/asm/kvm_ppc.h's declaration of hooks to forward calls to > uarch modules: > > bool (*unmap_gfn_range)(struct kvm *kvm, struct kvm_gfn_range *range); > bool (*age_gfn)(struct kvm *kvm, struct kvm_gfn_range *range); > bool (*test_age_gfn)(struct kvm *kvm, struct kvm_gfn_range *range); > bool (*set_spte_gfn)(struct kvm *kvm, struct kvm_gfn_range *range); > > Prior to using a Kconfig, a forward declaration wasn't necessary because > arch/powerpc/include/asm/kvm_host.h would #define KVM_ARCH_WANT_MMU_NOTIFIER even > if CONFIG_KVM=n. > > Alternatively, kvm_ppc.h could declare the struct. I went this route mainly to > avoid the possibility of someone encountering the same problem on a different > architecture. Ah I see, thanks for your explanation!