On Mon, Jun 30, 2025 at 03:00:08PM +0200, David Hildenbrand wrote: > Let's bring the docs up-to-date. > > Reviewed-by: Zi Yan <z...@nvidia.com> > Signed-off-by: David Hildenbrand <da...@redhat.com> > --- > > +movable_ops page migration > +========================== > + > +Selected typed, non-folio pages (e.g., pages inflated in a memory balloon, > +zsmalloc pages) can be migrated using the movable_ops migration framework. > + > +The "struct movable_operations" provide callbacks specific to a page type > +for isolating, migrating and un-isolating (putback) these pages. > + > +Once a page is indicated as having movable_ops, that condition must not > +change until the page was freed back to the buddy. This includes not > +changing/clearing the page type and not changing/clearing the > +PG_movable_ops page flag. > + > +Arbitrary drivers cannot currently make use of this framework, as it > +requires: > + > +(a) a page type > +(b) indicating them as possibly having movable_ops in page_has_movable_ops() > + based on the page type
> +(c) returning the movable_ops from page_has_movable_ops() based on the page > + type I think you meant page_movable_ops()? Otherwise LGTM :) Reviewed-by: Harry Yoo <harry....@oracle.com> > +(d) not reusing the PG_movable_ops and PG_movable_ops_isolated page flags > + for other purposes > + > +For example, balloon drivers can make use of this framework through the > +balloon-compaction infrastructure residing in the core kernel. -- Cheers, Harry / Hyeonggon