[PATCH] KVM: use folio_nr_pages() instead of shift operation

Pedro Demarchi Gomes posted 1 patch 2 months, 2 weeks ago
virt/kvm/guest_memfd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] KVM: use folio_nr_pages() instead of shift operation
Posted by Pedro Demarchi Gomes 2 months, 2 weeks ago
folio_nr_pages() is a faster helper function to get the number of pages when
NR_PAGES_IN_LARGE_FOLIO is enabled.

Signed-off-by: Pedro Demarchi Gomes <pedrodemargomes@gmail.com>
---
 virt/kvm/guest_memfd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index 7d85cc33c0bb..5fc5475cf826 100644
--- a/virt/kvm/guest_memfd.c
+++ b/virt/kvm/guest_memfd.c
@@ -77,9 +77,9 @@ static int kvm_gmem_prepare_folio(struct kvm *kvm, struct kvm_memory_slot *slot,
 	 * The order will be passed when creating the guest_memfd, and
 	 * checked when creating memslots.
 	 */
-	WARN_ON(!IS_ALIGNED(slot->gmem.pgoff, 1 << folio_order(folio)));
+	WARN_ON(!IS_ALIGNED(slot->gmem.pgoff, folio_nr_pages(folio)));
 	index = gfn - slot->base_gfn + slot->gmem.pgoff;
-	index = ALIGN_DOWN(index, 1 << folio_order(folio));
+	index = ALIGN_DOWN(index, folio_nr_pages(folio));
 	r = __kvm_gmem_prepare_folio(kvm, slot, index, folio);
 	if (!r)
 		kvm_gmem_mark_prepared(folio);
-- 
2.39.5
Re: [PATCH] KVM: use folio_nr_pages() instead of shift operation
Posted by David Hildenbrand 1 month, 3 weeks ago
On 04.10.25 05:02, Pedro Demarchi Gomes wrote:
> folio_nr_pages() is a faster helper function to get the number of pages when
> NR_PAGES_IN_LARGE_FOLIO is enabled.
> 
> Signed-off-by: Pedro Demarchi Gomes <pedrodemargomes@gmail.com>
> ---
>   virt/kvm/guest_memfd.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
> index 7d85cc33c0bb..5fc5475cf826 100644
> --- a/virt/kvm/guest_memfd.c
> +++ b/virt/kvm/guest_memfd.c
> @@ -77,9 +77,9 @@ static int kvm_gmem_prepare_folio(struct kvm *kvm, struct kvm_memory_slot *slot,
>   	 * The order will be passed when creating the guest_memfd, and
>   	 * checked when creating memslots.
>   	 */
> -	WARN_ON(!IS_ALIGNED(slot->gmem.pgoff, 1 << folio_order(folio)));
> +	WARN_ON(!IS_ALIGNED(slot->gmem.pgoff, folio_nr_pages(folio)));
>   	index = gfn - slot->base_gfn + slot->gmem.pgoff;
> -	index = ALIGN_DOWN(index, 1 << folio_order(folio));
> +	index = ALIGN_DOWN(index, folio_nr_pages(folio));
>   	r = __kvm_gmem_prepare_folio(kvm, slot, index, folio);
>   	if (!r)
>   		kvm_gmem_mark_prepared(folio);

FWIW

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb
Re: [PATCH] KVM: use folio_nr_pages() instead of shift operation
Posted by Sean Christopherson 2 months ago
On Sat, 04 Oct 2025 00:02:10 -0300, Pedro Demarchi Gomes wrote:
> folio_nr_pages() is a faster helper function to get the number of pages when
> NR_PAGES_IN_LARGE_FOLIO is enabled.

Applied to kvm-x86 gmem, thanks!

[1/1] KVM: use folio_nr_pages() instead of shift operation
      https://github.com/kvm-x86/linux/commit/fa492ac7fb04

--
https://github.com/kvm-x86/linux/tree/next
Re: [PATCH] KVM: use folio_nr_pages() instead of shift operation
Posted by Sean Christopherson 1 month, 4 weeks ago
On Wed, Oct 15, 2025, Sean Christopherson wrote:
> On Sat, 04 Oct 2025 00:02:10 -0300, Pedro Demarchi Gomes wrote:
> > folio_nr_pages() is a faster helper function to get the number of pages when
> > NR_PAGES_IN_LARGE_FOLIO is enabled.
> 
> Applied to kvm-x86 gmem, thanks!
> 
> [1/1] KVM: use folio_nr_pages() instead of shift operation
>       https://github.com/kvm-x86/linux/commit/fa492ac7fb04

FYI, I rebased this onto 6.18-rc2 to avoid a silly merge.  New hash:

[1/1] KVM: guest_memfd: use folio_nr_pages() instead of shift operation
      https://github.com/kvm-x86/linux/commit/765fcd7c0753