On 23 Jun 2025, at 11:33, David Hildenbrand wrote:
On 18.06.25 20:48, Zi Yan wrote:
On 18 Jun 2025, at 14:39, Matthew Wilcox wrote:
On Wed, Jun 18, 2025 at 02:14:15PM -0400, Zi Yan wrote:
On 18 Jun 2025, at 13:39, David Hildenbrand wrote:
... and start moving back to per-page things that will absolutely not be
folio things in the future. Add documentation and a comment that the
remaining folio stuff (lock, refcount) will have to be reworked as well.
While at it, convert the VM_BUG_ON() into a WARN_ON_ONCE() and handle
it gracefully (relevant with further changes), and convert a
WARN_ON_ONCE() into a VM_WARN_ON_ONCE_PAGE().
The reason is that there is no upstream code, which use movable_ops for
folios? Is there any fundamental reason preventing movable_ops from
being used on folios?
folios either belong to a filesystem or they are anonymous memory, and
so either the filesystem knows how to migrate them (through its a_ops)
or the migration code knows how to handle anon folios directly.
Right, migration of folios will be handled by migration core.
for device private pages, to support migrating >0 order anon or fs folios
to device, how should we represent them for devices? if you think folio is
only for anon and fs.
I assume they are proper folios, so yes. Just like they are handled today (-> folios)
I was asking a related question at LSF/MM in Alistair's session: are we sure these things will be folios even before they are assigned to a filesystem? I recall the answer was "yes".
So we don't (and will not) support movable_ops for folios.
Got it. (I was abusing it to help develop alloc_contig_range() at pageblock
granularity, since it was easy to write a driver to allocate a compound page
at a specific PFN and claim the page is movable, then do page online/offline
the range containing the PFNs. :) )
For the patch, Reviewed-by: Zi Yan <ziy@xxxxxxxxxx>