From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA3A43B994A for ; Wed, 26 Aug 2026 23:05:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.198 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787785523; cv=none; b=bkqCon+ne75NiozvfiDI0j9qoJljhxLA2z4tnP/RYiRdA6MBhjjb6jN62WHM09wZm1ur/YMZxdj+v4e2SOuE9VJwdPEqjdBpJo3FubSgqUqzEroHH0RtmDT0R8wwltCT0YLo6vg9jtEaNV7P1IdIUbRKbQFpQazj4IkNzoDgPYA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787785523; c=relaxed/simple; bh=qL5Msc494NJuKcmWE24vsAAjb+vMIGOu61VoiZ5Vfps=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=qUjdHDwS/45rfodywwcUVC+wlKfOHCehAc8t6HSvlVJKo6UyiLPcujXO/XJbd0BhgHVsnCuDAp13x7vQgBC4S/s3QGM/HmNth99cEBIY4wojKd2Rbo3OtdgZ9/qamfodO6Klty/oZEijZpIpqoHQ9+yjjEOnX9htvkiU/1HPXqM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jfI/hnRY; arc=none smtp.client-ip=209.85.214.198 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jfI/hnRY" Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d6df0a1e18so22729945ad.1 for ; Wed, 26 Aug 2026 16:05:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1787785521; x=1788390321; darn=lists.linux.dev; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:reply-to:from:to:cc:subject:date:message-id :reply-to:content-type; bh=WTM/WcY6qCCrKYMU/D/LJJQp2BSUWxg1SxXMol0XzNo=; b=jfI/hnRYT+0w42yyhWTiBLLIP0o6hFdSVcFLhkWQPuGfpuCtuWE4iwIB24lyg1B1OY Cv8TiLWhw8V8HC3ZcRkvsy8Xan5CK1zwk9POWolb4QFjPhZE6VuK1iPzi3GRlLkYQ9SX wCVi+ztRrEqdQ3aHqmg17X6ZSO5tZFDXwD4z2QN9fwOETEOFL4Z7uqo6VpUm7wymO/N0 croXYoppc3ZwhTpGPrXyC1flPjcpfeI7wcELRKfU0lr1NqpwLDgOz5hc27WULut2ee80 jYNU2VjxmsgOVDac+IodwdbVJ66i/FAub20qJ4ylcTPvOImDBETn2NHLIU8awEqL2Srb gxcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787785521; x=1788390321; h=content-type: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:content-type; bh=WTM/WcY6qCCrKYMU/D/LJJQp2BSUWxg1SxXMol0XzNo=; b=SQIBOfe1z0tc0er58zeHrLRWmY5UixOF7QempX9uvaLHv5SKe8sO/AAt3l0cqj7+xQ vA1yeDx4klYQqQGixOlD+a8EeJ2G+pVCnFViH3PHjXY4qQAAN+EsIKru5Wzhsolch4gD 5M/JunUlYBltmrclDhUuX1oF8f+5X8yjhPnM/KghSu8nzqBqVO1WqKMvvmTHOQhv/FJ1 ta+/uG/xYhYWp20MET6nbpacz18o3UAUmnkxT2ubs6RsABAROPeBnRpvdqYWFzqDubXn mx3un0RbkZvIaXZmODPNinVGaUSQXLunqHrjYSEtzrYO1nJIewH3qItrLaEpKmv4SjC9 phmw== X-Forwarded-Encrypted: i=1; AHgh+RoJRGAJrmYaT+yYIwWi5kNOvMRZiUrSW0Apkm8PgDZ6DcsjPEgjvM/LAohssNZopUk0DX6VhwAAQiM=@lists.linux.dev X-Gm-Message-State: AFuF++mm4NE8wHtmBzsE+fh5ox2Hz8rxhYePMNlK84FNORFFqo/znEHj tiWNmzz4bHxc63mdPN6jE3+usajjymdxp9H+bOlLNOsVmMRju6SW85d1hx75krpq0Y/oMcocr3s d0KAQOA== X-Received: from plbkh8.prod.google.com ([2002:a17:903:648:b0:2cc:ed0e:f302]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f64f:b0:2c9:fb11:1bf4 with SMTP id d9443c01a7336-2d707aca8dcmr198971375ad.7.1787785520801; Wed, 26 Aug 2026 16:05:20 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 26 Aug 2026 16:04:55 -0700 In-Reply-To: <20260826230511.972824-1-seanjc@google.com> Precedence: bulk X-Mailing-List: loongarch@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260826230511.972824-1-seanjc@google.com> X-Mailer: git-send-email 2.55.0.887.g758fc8c411-goog Message-ID: <20260826230511.972824-5-seanjc@google.com> Subject: [PATCH 04/20] KVM: selftests: Rename "num" param to "nr_pages" for physical page allocators From: Sean Christopherson To: Marc Zyngier , Oliver Upton , Sean Christopherson , Paolo Bonzini , Tianrui Zhao , Bibo Mao , Huacai Chen , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda Cc: 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 Content-Type: text/plain; charset="UTF-8" Rename the "num" param in the physical page allocator APIs to "nr_pages" to make the unit and role of the param more obvious. Opportunistically rework the function comment to drop the superfluous kerneldoc style, and to very explicitly call out that success is guaranteed. No functional change intended. Signed-off-by: Sean Christopherson --- .../testing/selftests/kvm/include/kvm_util.h | 6 ++-- tools/testing/selftests/kvm/lib/kvm_util.c | 35 ++++++------------- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h index 70906a0d1003..b1c5597b1def 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -991,11 +991,11 @@ void kvm_gsi_routing_write(struct kvm_vm *vm, struct kvm_irq_routing *routing); const char *exit_reason_str(unsigned int exit_reason); gpa_t vm_phy_page_alloc(struct kvm_vm *vm, gpa_t min_gpa, u32 memslot); -gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, gpa_t min_gpa, +gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, u32 memslot, bool protected); gpa_t vm_alloc_page_table(struct kvm_vm *vm); -static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, +static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, u32 memslot) { /* @@ -1003,7 +1003,7 @@ static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, * protected memory, as the majority of memory for such VMs is * protected, i.e. using shared memory is effectively opt-in. */ - return __vm_phy_pages_alloc(vm, num, min_gpa, memslot, + return __vm_phy_pages_alloc(vm, nr_pages, min_gpa, memslot, vm_arch_has_protected_memory(vm)); } diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 9ddc047d5c27..b071d77dd301 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -2025,33 +2025,20 @@ const char *exit_reason_str(unsigned int exit_reason) } /* - * Physical Contiguous Page Allocator + * Allocate contiguous (guest) physical pages in a given memory region, at or + * the minimum specific GPA. If the memory is protected/private, also add the + * allocate pages to the region's set of protected pages, e.g. so that arch + * code knows which pages need to be encrypted when launching the VM. * - * Input Args: - * vm - Virtual Machine - * num - number of pages - * min_gpa - Physical address minimum - * memslot - Memory region to allocate page from - * protected - True if the pages will be used as protected/private memory - * - * Output Args: None - * - * Return: - * Starting physical address - * - * Within the VM specified by vm, locates a range of available physical - * pages at or above min_gpa. If found, the pages are marked as in use - * and their base address is returned. A TEST_ASSERT failure occurs if - * not enough pages are available at or above min_gpa. + * Note, success is guaranteed! */ -gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, - gpa_t min_gpa, u32 memslot, - bool protected) +gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, + u32 memslot, bool protected) { struct userspace_mem_region *region; sparsebit_idx_t pg, base; - TEST_ASSERT(num > 0, "Must allocate at least one page"); + TEST_ASSERT(nr_pages, "Must allocate at least one page"); TEST_ASSERT((min_gpa % vm->page_size) == 0, "Min physical address " "not divisible by page size.\n" @@ -2064,13 +2051,13 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, base = pg = min_gpa >> vm->page_shift; do { - for (; pg < base + num; ++pg) { + for (; pg < base + nr_pages; ++pg) { if (!sparsebit_is_set(region->unused_phy_pages, pg)) { base = pg = sparsebit_next_set(region->unused_phy_pages, pg); break; } } - } while (pg && pg != base + num); + } while (pg && pg != base + nr_pages); if (pg == 0) { fprintf(stderr, "No guest physical page available, " @@ -2081,7 +2068,7 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, abort(); } - for (pg = base; pg < base + num; ++pg) { + for (pg = base; pg < base + nr_pages; ++pg) { sparsebit_clear(region->unused_phy_pages, pg); if (protected) sparsebit_set(region->protected_phy_pages, pg); -- 2.55.0.887.g758fc8c411-goog 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 035E2C61DC2 for ; Wed, 26 Aug 2026 23:05:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID :References:Mime-Version:In-Reply-To:Date:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=l2u2o4+EpXntChB+s7F8hqvYVh+m6AlS1k0sWDAcRaU=; b=rCUz268LKne+9S A97yHpWVH+tHRlLu+TZFS9U+SvJJsw25oPAkDbCpne9i7AOxPwst78Iz4i51zCTFS9XIhAmhlM50F H6zmn9HllL+n5HA3oPQFCRP2XXGuvOYKQ/TQL4GcJxm6MK84S2whtO8ZcMBWir6ruhOxLjMH1IMxh Qz7Vy+gfHF9UaARMx8cQqa3A71/eC5R44vT4o8yKj+qUe58iZsO8fxJIWoroLaM1BX8Dhfu70u3Y5 pU47avThgOH2l2Lvln94279mp07ksyZoVXADi3ckb4N+29oohwCqRT5jggTEYyrfiyanFbUQmdrHa MvTTNoKBMC8yncaQb+yA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzMge-000000036Td-1xRu; Wed, 26 Aug 2026 23:05:40 +0000 Received: from mail-pl1-x648.google.com ([2607:f8b0:4864:20::648]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzMgM-0000000367D-0wqH for kvm-riscv@lists.infradead.org; Wed, 26 Aug 2026 23:05:23 +0000 Received: by mail-pl1-x648.google.com with SMTP id d9443c01a7336-2ce7dfd33ffso15135545ad.0 for ; Wed, 26 Aug 2026 16:05:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1787785521; x=1788390321; darn=lists.infradead.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:reply-to:from:to:cc:subject:date:message-id :reply-to:content-type; bh=WTM/WcY6qCCrKYMU/D/LJJQp2BSUWxg1SxXMol0XzNo=; b=SS1iHi1hI04VYYjoR3RezkX+Ex33+suxcfAcL+AijQ90FuJ3qwBfeyRdfxsTnEueZH aQeRmTbniSGJ37HA/x1D+fIZQDag4Eplw2BTlPr7+c5ELJfrJf0f76llHY8fBHfZFAN0 AEDp8BMhu25Wq/hJouQP8Hf3BX/OPydfphqHektiirxq0VIz3h6p84Rr+t4XGUrOOi9F mdIYWNwrGwV2P1uOsJU8x99FGPKiDzTQX0lpGiMqMrOJJiLDRiBsIpa+0x81uxfcBrWh zC90dgGOUrPZCAb227EsBij/ScrTD7hlmmuQMp+PebaDEbtITTfvca/2zb8K4zrrpA/Y 8VJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787785521; x=1788390321; h=content-type: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:content-type; bh=WTM/WcY6qCCrKYMU/D/LJJQp2BSUWxg1SxXMol0XzNo=; b=Yld7JZ8/Y7zcWM16FGefdNt1/FIiXHZ6STILLScMGj8rLB2FDBEZ7K2i7qdZ52W4e6 3Yrb9BtzdRlwgwp2frnLCCGEVkg9Q7JCmcNlCte2Omr5XCw5bJN9ypT9YqU1aIhJUfum qGHQu25V+tUlcgOqKl4lCov1XoOM0bsZVhD9GO5sDgEcNJOTXnnBC8SH59Daxcdeww8S WPLw6REAtvMmb0fEZzj4CRoIHdwYI+tPKs6Y8qdXIDcuFY5YxPSrgerUGxlCDXBdvDjf 8ZiVDJxFyV8m4l3/izD508uugTkkEYDhbF+LTd1Zck1+njlDl28z05UV9TQ48MTRz+6A dZMg== X-Forwarded-Encrypted: i=1; AHgh+RqI46dNcdLvBjcdEftbVQmtp2z4ADmNFZGE238DR72jqDPPLHoQ93vKoHw6CEeNJEj8ynHg2nvzuLc=@lists.infradead.org X-Gm-Message-State: AFuF++njvJ2idygMoYzCFb/Ce4+VW15XzZNSNyNjPWDHb6iPIqAlWUT+ xHe79lfjDzSBM33Y6g/KxmfrhqlLOVIsQ/IYz0GEX+ltMqI50wuRnjYJMm8ZgXRdKfAhptj7reS aa0MfpA== X-Received: from plbkh8.prod.google.com ([2002:a17:903:648:b0:2cc:ed0e:f302]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f64f:b0:2c9:fb11:1bf4 with SMTP id d9443c01a7336-2d707aca8dcmr198971375ad.7.1787785520801; Wed, 26 Aug 2026 16:05:20 -0700 (PDT) Date: Wed, 26 Aug 2026 16:04:55 -0700 In-Reply-To: <20260826230511.972824-1-seanjc@google.com> Mime-Version: 1.0 References: <20260826230511.972824-1-seanjc@google.com> X-Mailer: git-send-email 2.55.0.887.g758fc8c411-goog Message-ID: <20260826230511.972824-5-seanjc@google.com> Subject: [PATCH 04/20] KVM: selftests: Rename "num" param to "nr_pages" for physical page allocators From: Sean Christopherson To: Marc Zyngier , Oliver Upton , Sean Christopherson , Paolo Bonzini , Tianrui Zhao , Bibo Mao , Huacai Chen , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda Cc: 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260826_160522_283973_2F5F67E7 X-CRM114-Status: GOOD ( 14.94 ) X-BeenThere: kvm-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Sean Christopherson Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org Rename the "num" param in the physical page allocator APIs to "nr_pages" to make the unit and role of the param more obvious. Opportunistically rework the function comment to drop the superfluous kerneldoc style, and to very explicitly call out that success is guaranteed. No functional change intended. Signed-off-by: Sean Christopherson --- .../testing/selftests/kvm/include/kvm_util.h | 6 ++-- tools/testing/selftests/kvm/lib/kvm_util.c | 35 ++++++------------- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h index 70906a0d1003..b1c5597b1def 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -991,11 +991,11 @@ void kvm_gsi_routing_write(struct kvm_vm *vm, struct kvm_irq_routing *routing); const char *exit_reason_str(unsigned int exit_reason); gpa_t vm_phy_page_alloc(struct kvm_vm *vm, gpa_t min_gpa, u32 memslot); -gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, gpa_t min_gpa, +gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, u32 memslot, bool protected); gpa_t vm_alloc_page_table(struct kvm_vm *vm); -static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, +static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, u32 memslot) { /* @@ -1003,7 +1003,7 @@ static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, * protected memory, as the majority of memory for such VMs is * protected, i.e. using shared memory is effectively opt-in. */ - return __vm_phy_pages_alloc(vm, num, min_gpa, memslot, + return __vm_phy_pages_alloc(vm, nr_pages, min_gpa, memslot, vm_arch_has_protected_memory(vm)); } diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 9ddc047d5c27..b071d77dd301 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -2025,33 +2025,20 @@ const char *exit_reason_str(unsigned int exit_reason) } /* - * Physical Contiguous Page Allocator + * Allocate contiguous (guest) physical pages in a given memory region, at or + * the minimum specific GPA. If the memory is protected/private, also add the + * allocate pages to the region's set of protected pages, e.g. so that arch + * code knows which pages need to be encrypted when launching the VM. * - * Input Args: - * vm - Virtual Machine - * num - number of pages - * min_gpa - Physical address minimum - * memslot - Memory region to allocate page from - * protected - True if the pages will be used as protected/private memory - * - * Output Args: None - * - * Return: - * Starting physical address - * - * Within the VM specified by vm, locates a range of available physical - * pages at or above min_gpa. If found, the pages are marked as in use - * and their base address is returned. A TEST_ASSERT failure occurs if - * not enough pages are available at or above min_gpa. + * Note, success is guaranteed! */ -gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, - gpa_t min_gpa, u32 memslot, - bool protected) +gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, + u32 memslot, bool protected) { struct userspace_mem_region *region; sparsebit_idx_t pg, base; - TEST_ASSERT(num > 0, "Must allocate at least one page"); + TEST_ASSERT(nr_pages, "Must allocate at least one page"); TEST_ASSERT((min_gpa % vm->page_size) == 0, "Min physical address " "not divisible by page size.\n" @@ -2064,13 +2051,13 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, base = pg = min_gpa >> vm->page_shift; do { - for (; pg < base + num; ++pg) { + for (; pg < base + nr_pages; ++pg) { if (!sparsebit_is_set(region->unused_phy_pages, pg)) { base = pg = sparsebit_next_set(region->unused_phy_pages, pg); break; } } - } while (pg && pg != base + num); + } while (pg && pg != base + nr_pages); if (pg == 0) { fprintf(stderr, "No guest physical page available, " @@ -2081,7 +2068,7 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, abort(); } - for (pg = base; pg < base + num; ++pg) { + for (pg = base; pg < base + nr_pages; ++pg) { sparsebit_clear(region->unused_phy_pages, pg); if (protected) sparsebit_set(region->protected_phy_pages, pg); -- 2.55.0.887.g758fc8c411-goog -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv 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 68F76C61DC7 for ; Wed, 26 Aug 2026 23:05:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID :References:Mime-Version:In-Reply-To:Date:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=R7Bw58Fh5Az0xDlMbT067arR/0iezu5sgGAebJhqb94=; b=zbU+2l4HNrSOTs 2gNlyGQt92PeuEM75gzM1ZctghGfD3Z/6tRTTHR/KZjE8tK3Yzdn/148wwjYIQ5VKDL1ddJphGqrS 2sW71AHxek93cKzvUzXc8Im5x1BN3U245fibfjVcL1kNy4NjZW5gv0zCaMjILfVrTn6rwJZVg+KiK eSDqeaBzAGw404lKl6XP3ylXxloJeKEEeEpnK9XkqRih91vSlmOKpa9FtdbcnsfuharajaUQU3SQ/ WvElp9sjsnyvpyXikXdjwXABmeWUzHawHbXVEvCH1Ks1KySRPjHdAAHXnjBTngdnv/dl4+vQqw9rY 0PIt5vkpdTyjiz0Th9Kw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzMge-000000036Rm-0fPF; Wed, 26 Aug 2026 23:05:40 +0000 Received: from mail-pl1-x645.google.com ([2607:f8b0:4864:20::645]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzMgM-0000000367B-0wqP for linux-riscv@lists.infradead.org; Wed, 26 Aug 2026 23:05:23 +0000 Received: by mail-pl1-x645.google.com with SMTP id d9443c01a7336-2d6df0a1e18so22729925ad.1 for ; Wed, 26 Aug 2026 16:05:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1787785521; x=1788390321; darn=lists.infradead.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:reply-to:from:to:cc:subject:date:message-id :reply-to:content-type; bh=WTM/WcY6qCCrKYMU/D/LJJQp2BSUWxg1SxXMol0XzNo=; b=SS1iHi1hI04VYYjoR3RezkX+Ex33+suxcfAcL+AijQ90FuJ3qwBfeyRdfxsTnEueZH aQeRmTbniSGJ37HA/x1D+fIZQDag4Eplw2BTlPr7+c5ELJfrJf0f76llHY8fBHfZFAN0 AEDp8BMhu25Wq/hJouQP8Hf3BX/OPydfphqHektiirxq0VIz3h6p84Rr+t4XGUrOOi9F mdIYWNwrGwV2P1uOsJU8x99FGPKiDzTQX0lpGiMqMrOJJiLDRiBsIpa+0x81uxfcBrWh zC90dgGOUrPZCAb227EsBij/ScrTD7hlmmuQMp+PebaDEbtITTfvca/2zb8K4zrrpA/Y 8VJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787785521; x=1788390321; h=content-type: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:content-type; bh=WTM/WcY6qCCrKYMU/D/LJJQp2BSUWxg1SxXMol0XzNo=; b=P4JiQBfjIANAysTeb32VKTZyRuY2mZoHc3KL1EBz64QN9PAEhdUGrFPSqFp5hckSPV xbGLOfm9sgpS4NHNrxdCHVYuyjQ98n37i6APWCuehBJ8UhrssFgy8oEBqIPai56pfcWV iWXGCwGxsrhS7faOOPfOyRKI8lQdYdCsZhWK+PZgRA+zX201NESv8PAMtJ/2FVyKKojV yEfWbi/2GGRKQrBo7Mj1ePPQgeehpmdjgZHANS+EQRUkoLSrtJqNb2KsJoUQ7cTl1Tsb fLyvH0CwJNxA0pBEPThFKfFinsbb6fBSXvQACR3+yC8zHIeuqENYXCACi790dDXxIFFl S+7w== X-Forwarded-Encrypted: i=1; AHgh+RqhOXXnsDf8Ct+6SamWVaah/M8U0bQ7DJDLVuqR3QQDIxd/gtxmj1KzfLZTgufyHeDtlolaO9NTGIfA0w==@lists.infradead.org X-Gm-Message-State: AFuF++nGeyzC6MalC+7fU0DQeAGLeSxkEVGewsY+XkI6HW9kIdw8kwqe 61TXQc4qZ1Q4jQ6pAAFyKfrz55GiO8BMutJx5DD/X9/lYhVWMOT+0ijK1anfP112Rx0nyAaaWYd fMVIbcA== X-Received: from plbkh8.prod.google.com ([2002:a17:903:648:b0:2cc:ed0e:f302]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f64f:b0:2c9:fb11:1bf4 with SMTP id d9443c01a7336-2d707aca8dcmr198971375ad.7.1787785520801; Wed, 26 Aug 2026 16:05:20 -0700 (PDT) Date: Wed, 26 Aug 2026 16:04:55 -0700 In-Reply-To: <20260826230511.972824-1-seanjc@google.com> Mime-Version: 1.0 References: <20260826230511.972824-1-seanjc@google.com> X-Mailer: git-send-email 2.55.0.887.g758fc8c411-goog Message-ID: <20260826230511.972824-5-seanjc@google.com> Subject: [PATCH 04/20] KVM: selftests: Rename "num" param to "nr_pages" for physical page allocators From: Sean Christopherson To: Marc Zyngier , Oliver Upton , Sean Christopherson , Paolo Bonzini , Tianrui Zhao , Bibo Mao , Huacai Chen , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda Cc: 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260826_160522_278019_AAB0324C X-CRM114-Status: GOOD ( 14.94 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Sean Christopherson Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Rename the "num" param in the physical page allocator APIs to "nr_pages" to make the unit and role of the param more obvious. Opportunistically rework the function comment to drop the superfluous kerneldoc style, and to very explicitly call out that success is guaranteed. No functional change intended. Signed-off-by: Sean Christopherson --- .../testing/selftests/kvm/include/kvm_util.h | 6 ++-- tools/testing/selftests/kvm/lib/kvm_util.c | 35 ++++++------------- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h index 70906a0d1003..b1c5597b1def 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -991,11 +991,11 @@ void kvm_gsi_routing_write(struct kvm_vm *vm, struct kvm_irq_routing *routing); const char *exit_reason_str(unsigned int exit_reason); gpa_t vm_phy_page_alloc(struct kvm_vm *vm, gpa_t min_gpa, u32 memslot); -gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, gpa_t min_gpa, +gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, u32 memslot, bool protected); gpa_t vm_alloc_page_table(struct kvm_vm *vm); -static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, +static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, u32 memslot) { /* @@ -1003,7 +1003,7 @@ static inline gpa_t vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, * protected memory, as the majority of memory for such VMs is * protected, i.e. using shared memory is effectively opt-in. */ - return __vm_phy_pages_alloc(vm, num, min_gpa, memslot, + return __vm_phy_pages_alloc(vm, nr_pages, min_gpa, memslot, vm_arch_has_protected_memory(vm)); } diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 9ddc047d5c27..b071d77dd301 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -2025,33 +2025,20 @@ const char *exit_reason_str(unsigned int exit_reason) } /* - * Physical Contiguous Page Allocator + * Allocate contiguous (guest) physical pages in a given memory region, at or + * the minimum specific GPA. If the memory is protected/private, also add the + * allocate pages to the region's set of protected pages, e.g. so that arch + * code knows which pages need to be encrypted when launching the VM. * - * Input Args: - * vm - Virtual Machine - * num - number of pages - * min_gpa - Physical address minimum - * memslot - Memory region to allocate page from - * protected - True if the pages will be used as protected/private memory - * - * Output Args: None - * - * Return: - * Starting physical address - * - * Within the VM specified by vm, locates a range of available physical - * pages at or above min_gpa. If found, the pages are marked as in use - * and their base address is returned. A TEST_ASSERT failure occurs if - * not enough pages are available at or above min_gpa. + * Note, success is guaranteed! */ -gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, - gpa_t min_gpa, u32 memslot, - bool protected) +gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa, + u32 memslot, bool protected) { struct userspace_mem_region *region; sparsebit_idx_t pg, base; - TEST_ASSERT(num > 0, "Must allocate at least one page"); + TEST_ASSERT(nr_pages, "Must allocate at least one page"); TEST_ASSERT((min_gpa % vm->page_size) == 0, "Min physical address " "not divisible by page size.\n" @@ -2064,13 +2051,13 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, base = pg = min_gpa >> vm->page_shift; do { - for (; pg < base + num; ++pg) { + for (; pg < base + nr_pages; ++pg) { if (!sparsebit_is_set(region->unused_phy_pages, pg)) { base = pg = sparsebit_next_set(region->unused_phy_pages, pg); break; } } - } while (pg && pg != base + num); + } while (pg && pg != base + nr_pages); if (pg == 0) { fprintf(stderr, "No guest physical page available, " @@ -2081,7 +2068,7 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t num, abort(); } - for (pg = base; pg < base + num; ++pg) { + for (pg = base; pg < base + nr_pages; ++pg) { sparsebit_clear(region->unused_phy_pages, pg); if (protected) sparsebit_set(region->protected_phy_pages, pg); -- 2.55.0.887.g758fc8c411-goog _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv