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 <z...@nvidia.com> -- Best Regards, Yan, Zi