Re: [PATCH v3 4/5] KVM: selftests: Move page_align() to shared header
From: Fuad Tabba <tabba@google.com>
Date: 2026-01-06 19:49:41
Also in:
kvm, kvm-riscv, kvmarm
On Tue, 6 Jan 2026 at 19:46, Sean Christopherson [off-list ref] wrote:
On Tue, Jan 06, 2026, Fuad Tabba wrote:quoted
To avoid code duplication, move page_align() to the shared `kvm_util.h` header file. No functional change intended. Reviewed-by: Andrew Jones <redacted> Signed-off-by: Fuad Tabba <tabba@google.com> --- tools/testing/selftests/kvm/include/kvm_util.h | 5 +++++ tools/testing/selftests/kvm/lib/arm64/processor.c | 5 ----- tools/testing/selftests/kvm/lib/riscv/processor.c | 5 ----- 3 files changed, 5 insertions(+), 10 deletions(-)diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h index 81f4355ff28a..dabbe4c3b93f 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h@@ -1258,6 +1258,11 @@ static inline int __vm_disable_nx_huge_pages(struct kvm_vm *vm) return __vm_enable_cap(vm, KVM_CAP_VM_DISABLE_NX_HUGE_PAGES, 0); } +static inline uint64_t page_align(struct kvm_vm *vm, uint64_t v)Maybe vm_page_align()? So that it's a bit more obvious when reading call sites that the alignment is done with respect to the guest's "base" page size, not the host's page size.
Yes, that's clearer. I'll fix this. Thanks, /fuad
quoted
+{ + return (v + vm->page_size - 1) & ~(vm->page_size - 1); +} + /* * Arch hook that is invoked via a constructor, i.e. before exeucting main(), * to allow for arch-specific setup that is common to all tests, e.g. computingdiff --git a/tools/testing/selftests/kvm/lib/arm64/processor.c b/tools/testing/selftests/kvm/lib/arm64/processor.c index 607a4e462984..143632917766 100644 --- a/tools/testing/selftests/kvm/lib/arm64/processor.c +++ b/tools/testing/selftests/kvm/lib/arm64/processor.c@@ -21,11 +21,6 @@ static vm_vaddr_t exception_handlers; -static uint64_t page_align(struct kvm_vm *vm, uint64_t v) -{ - return (v + vm->page_size - 1) & ~(vm->page_size - 1); -} - static uint64_t pgd_index(struct kvm_vm *vm, vm_vaddr_t gva) { unsigned int shift = (vm->pgtable_levels - 1) * (vm->page_shift - 3) + vm->page_shift;diff --git a/tools/testing/selftests/kvm/lib/riscv/processor.c b/tools/testing/selftests/kvm/lib/riscv/processor.c index d5e8747b5e69..f8ff4bf938d9 100644 --- a/tools/testing/selftests/kvm/lib/riscv/processor.c +++ b/tools/testing/selftests/kvm/lib/riscv/processor.c@@ -26,11 +26,6 @@ bool __vcpu_has_ext(struct kvm_vcpu *vcpu, uint64_t ext) return !ret && !!value; } -static uint64_t page_align(struct kvm_vm *vm, uint64_t v) -{ - return (v + vm->page_size - 1) & ~(vm->page_size - 1); -} - static uint64_t pte_addr(struct kvm_vm *vm, uint64_t entry) { return ((entry & PGTBL_PTE_ADDR_MASK) >> PGTBL_PTE_ADDR_SHIFT) << --2.52.0.351.gbe84eed79e-goog