[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250702093824.78538-1-lizhe.67@bytedance.com>
Date: Wed, 2 Jul 2025 17:38:24 +0800
From: lizhe.67@...edance.com
To: david@...hat.com
Cc: alex.williamson@...hat.com,
jgg@...dia.com,
jgg@...pe.ca,
kvm@...r.kernel.org,
linux-kernel@...r.kernel.org,
lizhe.67@...edance.com,
peterx@...hat.com
Subject: Re: [PATCH 0/4] vfio/type1: optimize vfio_pin_pages_remote() and vfio_unpin_pages_remote() for large folio
On Wed, 2 Jul 2025 10:15:29 +0200, david@...hat.com wrote:
> Jason mentioned in reply to the other series that, ideally, vfio
> shouldn't be messing with folios at all.
>
> While we now do that on the unpin side, we still do it at the pin side.
Yes.
> Which makes me wonder if we can avoid folios in patch #1 in
> contig_pages(), and simply collect pages that correspond to consecutive
> PFNs.
In my opinion, comparing whether the pfns of two pages are contiguous
is relatively inefficient. Using folios might be a more efficient
solution.
Given that 'page' is already in use within vfio, it seems that adopting
'folio' wouldn't be particularly troublesome? If you have any better
suggestions, I sincerely hope you would share them with me.
> What was the reason again, that contig_pages() would not exceed a single
> folio?
Regarding this issue, I think Alex and I are on the same page[1]. For a
folio, all of its pages have the same invalid or reserved state. In
the function vfio_pin_pages_remote(), we need to ensure that the state
is the same as the previous pfn (through variable 'rsvd' and function
is_invalid_reserved_pfn()). Therefore, we do not want the return value
of contig_pages() to exceed a single folio.
Thanks,
Zhe
[1]: https://lore.kernel.org/all/20250613081613.0bef3d39.alex.williamson@redhat.com/
Powered by blists - more mailing lists