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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0C230C5DF9D for ; Thu, 27 Aug 2026 05:27:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=sAnLvJpbx5hh+QSlqF/q6Z0H9OGBcpyerPZz9Kb8zbg=; b=J+puSChWQHZQcYxGs4144n4AUW rcKxbb4Px0fjJ7iuyu0SvEhFwyuorv8GOBVSlj+qJsGXCgtTF+qMfcg7QcjBHMSdMyGNmAa2xj+E5 FexufIeLZOyxD5utpCna/E4DPz7PBcXsJN1erqXMLtF8T/HNFLR48ZmkW2WesagJnrPcjp3GaqPzQ 5OnRHE3/fp6iMfZNgQxGi/Awo99kJgVqnKJrhoQq8KcadQ9JnHddWQqiRa+LnhonEoKl/6+Av9RbR Mexf3RAxKJ0OmO5dNjQEfQFPElkQ43CSbnhBb4CgIjAiKTiRFEpN2gUIc2JNUHPbuIFNFE2JWpTFh EGHde33g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzSe9-00000003QHm-1Mc8; Thu, 27 Aug 2026 05:27:29 +0000 Received: from esa1.hc1455-7.c3s2.iphmx.com ([207.54.90.47]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzSe6-00000003QHA-38vC; Thu, 27 Aug 2026 05:27:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj2; t=1787808447; x=1819344447; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=LNguTLWe0jdKgr+r/c43BTP0XhTiTX9J59hPN8fgAWE=; b=WAGunQmJi4u2Do6RVl+V1ZTZfd4IqNw6Y8e5tR0xf/2gRDSdcI2jJkJZ 5WVa6av94i3LC+tMt5H4gF9pqCP31JIE950C+fhOsH7qClvjUmXeOgr8s 3vystjtoSJtgVDvTp3o/WGGtoMcSN3Y3+Jrs66uEpIQ7RMgyxwfUFz8ca MvaVL1iqoluDlN6/AF7fDhnjyNoTe8wGXijz6fv49U0w6u6EzkSn0qurB Uxuxn0kN+NSe4o1xOGIORAk8ZCWy4Z4Pd5u5MxqZm4IF0DJDYJRUfydBG dGOYXGIVEJQEF/vzMzMDqgsUjzV8SgLsKshHdMfUett0GJM7LHhT4R83N Q==; X-CSE-ConnectionGUID: SizoyF8jTgeDVnpcTNx0zQ== X-CSE-MsgGUID: TAfQNkuvQMm+nfEu3RKDGQ== X-IronPort-AV: E=McAfee;i="6800,10657,11887"; a="252825888" X-IronPort-AV: E=Sophos;i="6.25,246,1779116400"; d="scan'208";a="252825888" Received: from gmgwnl01.global.fujitsu.com (HELO mgmgwnl01.global.fujitsu.com) ([52.143.17.124]) by esa1.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Aug 2026 14:27:25 +0900 Received: from az2nlsmgm1.o.css.fujitsu.com (unknown [10.150.26.203]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mgmgwnl01.global.fujitsu.com (Postfix) with ESMTPS id 7FAF3FC82; Thu, 27 Aug 2026 05:27:24 +0000 (UTC) Received: from az2nlsmom3.fujitsu.com (unknown [10.150.26.199]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by az2nlsmgm1.o.css.fujitsu.com (Postfix) with ESMTPS id 064A9C01EED; Thu, 27 Aug 2026 05:27:24 +0000 (UTC) Received: from sm-arm-grace07 (unknown [10.124.178.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by az2nlsmom3.fujitsu.com (Postfix) with ESMTPS id C2002101732E; Thu, 27 Aug 2026 05:27:14 +0000 (UTC) Date: Thu, 27 Aug 2026 14:27:11 +0900 From: Itaru Kitayama To: Sean Christopherson Cc: Marc Zyngier , Oliver Upton , Paolo Bonzini , Tianrui Zhao , Bibo Mao , Huacai Chen , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Fuad Tabba , Joey Gouly , Steffen Eiden , Suzuki K Poulose , Zenghui Yu , Atish Patra , Alexandre Ghiti , David Hildenbrand , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, kvm@vger.kernel.org, loongarch@lists.linux.dev, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Nicholas Piggin , Ritesh Harjani Subject: Re: [PATCH 10/20] KVM: selftests: Add a wrapper API to allocate multiple page table pages Message-ID: References: <20260826230511.972824-1-seanjc@google.com> <20260826230511.972824-11-seanjc@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260826230511.972824-11-seanjc@google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260826_222727_083541_E5FF064A X-CRM114-Status: GOOD ( 16.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Aug 26, 2026 at 04:05:01PM -0700, Sean Christopherson wrote: > Add vm_alloc_page_table_pages() and use it throughout arch code to replace > open coded equivalents. > > No functional change intended. > > Signed-off-by: Sean Christopherson > --- > tools/testing/selftests/kvm/include/kvm_util.h | 9 +++++++-- > tools/testing/selftests/kvm/lib/arm64/processor.c | 4 +--- > tools/testing/selftests/kvm/lib/riscv/processor.c | 4 +--- > tools/testing/selftests/kvm/lib/s390/processor.c | 8 ++------ > 4 files changed, 11 insertions(+), 14 deletions(-) > > diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h > index 2525c2cacc22..21354434de0a 100644 > --- a/tools/testing/selftests/kvm/include/kvm_util.h > +++ b/tools/testing/selftests/kvm/include/kvm_util.h > @@ -1013,10 +1013,15 @@ static inline gpa_t vm_phy_page_alloc(struct kvm_vm *vm, gpa_t min_gpa, > return vm_phy_pages_alloc(vm, 1, min_gpa, memslot); > } > > +static inline gpa_t vm_alloc_page_table_pages(struct kvm_vm *vm, size_t nr_pages) > +{ > + return vm_phy_pages_alloc(vm, nr_pages, KVM_GUEST_PAGE_TABLE_MIN_PADDR, > + vm->memslots[MEM_REGION_PT]); > +} > + > static inline gpa_t vm_alloc_page_table(struct kvm_vm *vm) > { > - return vm_phy_page_alloc(vm, KVM_GUEST_PAGE_TABLE_MIN_PADDR, > - vm->memslots[MEM_REGION_PT]); > + return vm_alloc_page_table_pages(vm, 1); > } > > /* > diff --git a/tools/testing/selftests/kvm/lib/arm64/processor.c b/tools/testing/selftests/kvm/lib/arm64/processor.c > index 01325bf4d36f..2dcaa2c4a038 100644 > --- a/tools/testing/selftests/kvm/lib/arm64/processor.c > +++ b/tools/testing/selftests/kvm/lib/arm64/processor.c > @@ -115,9 +115,7 @@ void virt_arch_pgd_alloc(struct kvm_vm *vm) > if (vm->mmu.pgd_created) > return; > > - vm->mmu.pgd = vm_phy_pages_alloc(vm, nr_pages, > - KVM_GUEST_PAGE_TABLE_MIN_PADDR, > - vm->memslots[MEM_REGION_PT]); > + vm->mmu.pgd = vm_alloc_page_table_pages(vm, nr_pages); > vm->mmu.pgd_created = true; > } Reviewed-by: Itaru Kitayama > > diff --git a/tools/testing/selftests/kvm/lib/riscv/processor.c b/tools/testing/selftests/kvm/lib/riscv/processor.c > index ded5429f3448..c175dcd14114 100644 > --- a/tools/testing/selftests/kvm/lib/riscv/processor.c > +++ b/tools/testing/selftests/kvm/lib/riscv/processor.c > @@ -69,9 +69,7 @@ void virt_arch_pgd_alloc(struct kvm_vm *vm) > if (vm->mmu.pgd_created) > return; > > - vm->mmu.pgd = vm_phy_pages_alloc(vm, nr_pages, > - KVM_GUEST_PAGE_TABLE_MIN_PADDR, > - vm->memslots[MEM_REGION_PT]); > + vm->mmu.pgd = vm_alloc_page_table_pages(vm, nr_pages); > vm->mmu.pgd_created = true; > } > > diff --git a/tools/testing/selftests/kvm/lib/s390/processor.c b/tools/testing/selftests/kvm/lib/s390/processor.c > index fb9dab92d4d1..33f49d743b5f 100644 > --- a/tools/testing/selftests/kvm/lib/s390/processor.c > +++ b/tools/testing/selftests/kvm/lib/s390/processor.c > @@ -20,9 +20,7 @@ void virt_arch_pgd_alloc(struct kvm_vm *vm) > if (vm->mmu.pgd_created) > return; > > - gpa = vm_phy_pages_alloc(vm, PAGES_PER_REGION, > - KVM_GUEST_PAGE_TABLE_MIN_PADDR, > - vm->memslots[MEM_REGION_PT]); > + gpa = vm_alloc_page_table_pages(vm, PAGES_PER_REGION); > memset(addr_gpa2hva(vm, gpa), 0xff, PAGES_PER_REGION * vm->page_size); > > vm->mmu.pgd = gpa; > @@ -38,9 +36,7 @@ static u64 virt_alloc_region(struct kvm_vm *vm, int ri) > { > u64 taddr; > > - taddr = vm_phy_pages_alloc(vm, ri < 4 ? PAGES_PER_REGION : 1, > - KVM_GUEST_PAGE_TABLE_MIN_PADDR, > - vm->memslots[MEM_REGION_PT]); > + taddr = vm_alloc_page_table_pages(vm, ri < 4 ? PAGES_PER_REGION : 1); > memset(addr_gpa2hva(vm, taddr), 0xff, PAGES_PER_REGION * vm->page_size); > > return (taddr & REGION_ENTRY_ORIGIN) > -- > 2.55.0.887.g758fc8c411-goog >