Linux KVM/arm64 development list
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Sean Christopherson" <seanjc@google.com>
Cc: "Oliver Upton" <oupton@kernel.org>,
	kvm@vger.kernel.org, kvmarm@lists.linux.dev,
	"Marc Zyngier" <maz@kernel.org>
Subject: Re: [PATCH v2 06/20] KVM: selftests: Extend page allocator to support naturally aligned allocations
Date: Wed, 02 Sep 2026 16:49:39 +0000	[thread overview]
Message-ID: <20260902164940.5CECB1F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260902164123.2546762-7-seanjc@google.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The `ALIGN()` macro is used with `nr_pages` as the alignment constraint, but there is no validation to ensure `nr_pages` is a power of two, which `ALIGN()` strictly requires.
--

commit 1b8052ce0034b1eff1950b660c7716fd2dffde7a
Author: Sean Christopherson <seanjc@google.com>

KVM: selftests: Extend page allocator to support naturally aligned allocations

This commit extends the KVM selftests page allocator to support naturally
aligned allocations. This is primarily for some flavors of PowerPC page tables
that require multiple guest pages per table, and those tables need to be
naturally aligned.

> diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c
> index bbf6d7684c0ca..896da440659e3 100644
> --- a/tools/testing/selftests/kvm/lib/kvm_util.c
> +++ b/tools/testing/selftests/kvm/lib/kvm_util.c
[ ... ]
> @@ -2032,9 +2033,10 @@ const char *exit_reason_str(unsigned int exit_reason)
>   *
>   * Note, success is guaranteed!
>   */
> -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_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa,
> +			     u32 memslot, bool protected, bool naturally_aligned)
>  {
> +	size_t alignment = naturally_aligned ? nr_pages : 1;
>  	struct userspace_mem_region *region;
>  	sparsebit_idx_t pg, base;
>  
[ ... ]
> @@ -2051,6 +2053,7 @@ gpa_t __vm_phy_pages_alloc(struct kvm_vm *vm, size_t nr_pages, gpa_t min_gpa,
>  
>  	base = min_gpa >> vm->page_shift;
>  again:
> +	base = ALIGN(base, alignment);

[Severity: Medium]
Are there any scenarios where ____vm_phy_pages_alloc() is called with
naturally_aligned set to true but nr_pages is not a power of two?

The ALIGN() macro uses bitwise arithmetic and mathematically requires the
alignment constraint to be a power of two. If nr_pages is not a power of
two, ALIGN() will silently compute an incorrect base address.

Would it be safer to add a check to ensure nr_pages is a power of two when
naturally_aligned is requested?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260902164123.2546762-1-seanjc@google.com?part=6

  reply	other threads:[~2026-09-02 16:49 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-02 16:41 [PATCH v2 00/20] KVM: selftests: PPC pre-enabling Sean Christopherson
2026-09-02 16:41 ` [PATCH v2 01/20] KVM: selftests: Use MEM_REGION_PT memslot instead of '0' for s390 regions/segments Sean Christopherson
2026-09-02 16:50   ` sashiko-bot
2026-09-10 10:24   ` Claudio Imbrenda
2026-09-02 16:41 ` [PATCH v2 02/20] KVM: selftests: Use the common minimum GPA for page tables on LoongArch Sean Christopherson
2026-09-03  1:01   ` Bibo Mao
2026-09-02 16:41 ` [PATCH v2 03/20] KVM: selftests: Use vm_alloc_page_table() to allocate LoongArch page tables Sean Christopherson
2026-09-02 16:41 ` [PATCH v2 04/20] KVM: selftests: Rename "num" param to "nr_pages" for physical page allocators Sean Christopherson
2026-09-02 16:50   ` sashiko-bot
2026-09-04 13:30   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 05/20] KVM: selftests: Use goto instead of do-while to retry finding unused physical pages Sean Christopherson
2026-09-04 11:40   ` Gautam Menghani
2026-09-02 16:41 ` [PATCH v2 06/20] KVM: selftests: Extend page allocator to support naturally aligned allocations Sean Christopherson
2026-09-02 16:49   ` sashiko-bot [this message]
2026-09-10  5:27   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 07/20] KVM: selftests: Make the single-page allocator APIs static inline Sean Christopherson
2026-09-10  6:36   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 08/20] KVM: selftests: Use the innermost page allocator API in the memslot perf test Sean Christopherson
2026-09-10 10:55   ` Ritesh Harjani
2026-09-10 11:00   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 09/20] KVM: selftests: Use the innermost page allocator API in s390's IRQ routing test Sean Christopherson
2026-09-07 11:21   ` Janosch Frank
2026-09-10 10:25   ` Claudio Imbrenda
2026-09-02 16:41 ` [PATCH v2 10/20] KVM: selftests: Add a wrapper API to allocate multiple page table pages Sean Christopherson
2026-09-04 11:41   ` Gautam Menghani
2026-09-07  8:23   ` Anup Patel
2026-09-10 10:23   ` Claudio Imbrenda
2026-09-10 11:04   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 11/20] KVM: selftests: Initialize vm->memslots[] with invalid memslots during creation Sean Christopherson
2026-09-04 11:42   ` Gautam Menghani
2026-09-10 11:09   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 12/20] KVM: selftests: Add APIs to override memory region types with custom memslots Sean Christopherson
2026-09-10 10:27   ` Claudio Imbrenda
2026-09-10 11:18   ` Ritesh Harjani
2026-09-10 16:24     ` Sean Christopherson
2026-09-11  2:08       ` Itaru Kitayama
2026-09-02 16:41 ` [PATCH v2 13/20] KVM: selftests: Add TEST_EXTRA memory region type for "special" memslots Sean Christopherson
2026-09-02 16:53   ` sashiko-bot
2026-09-02 16:41 ` [PATCH v2 14/20] KVM: selftests: Use TEST_EXTRA region in arm64's vGIC LPI stress test Sean Christopherson
2026-09-02 16:41 ` [PATCH v2 15/20] KVM: selftests: Use TEST_EXTRA region in x86's smaller MAXPHYADDR test Sean Christopherson
2026-09-02 16:41 ` [PATCH v2 16/20] KVM: selftests: Use TEST_EXTRA region in set memory region test Sean Christopherson
2026-09-02 16:41 ` [PATCH v2 17/20] KVM: selftests: Take the memory region type, not memslot, in page allocators Sean Christopherson
2026-09-10 11:40   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 18/20] KVM: selftests: Use TEST_ASSERT(), not assert(), in vm_get_mem_region() Sean Christopherson
2026-09-10 11:27   ` Ritesh Harjani
2026-09-02 16:41 ` [PATCH v2 19/20] KVM: selftests: Automatically pick min_gpa for allocations based on region type Sean Christopherson
2026-09-02 16:41 ` [PATCH v2 20/20] KVM: selftests: Add arch hook to force page tables to be naturally aligned Sean Christopherson
2026-09-02 16:59   ` sashiko-bot
2026-09-10 11:57   ` Ritesh Harjani
2026-09-02 23:06 ` [PATCH v2 00/20] KVM: selftests: PPC pre-enabling Itaru Kitayama

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260902164940.5CECB1F00A3A@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=maz@kernel.org \
    --cc=oupton@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=seanjc@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox