On 14 May 2025, at 7:15, David Hildenbrand wrote: > This is a requirement for making PageOffline pages not have a refcount > in the long future ("frozen"), and for reworking non-folio page migration > in the near future. > > I have patches mostly ready to go to handle the latter. For turning all > PageOffline() pages frozen, the non-folio page migration and memory > ballooning drivers will have to be reworked first, to no longer rely on > the refcount of PageOffline pages. > > Introduce PG_offline_skippable that only applies to PageOffline() pages -- > of course, reusing one of the existing PG_ flags for now -- and convert > virtio-mem to make use of the new way: to allow for skipping PageOffline > pages during memory offlining, treating them as if they would not be > allocated.
IIUC, based on Documentation/admin-guide/mm/memory-hotplug.rst, to offline a page, the page first needs to be set PageOffline() to be removed from page allocator. Next, the page is removed from its memory block. When will PG_offline_skippable be used? The second phase when the page is being removed from its memory block? Thanks. > > Note that the existing mechanism relied on the driver (virtio-mem) > dropping its reference during MEM_GOING_OFFLINE, which is complicated and > not compatible with the concept of frozen pages (no refcount). > > Tested with virtio-mem on x86, including partially hotplugging a memory > block (hotplugging 64MiB with a 128 MiB memory block size), and repeatedly > onlining+offlining the memory block. > > Cc: David Hildenbrand <da...@redhat.com> > Cc: "Michael S. Tsirkin" <m...@redhat.com> > Cc: Jason Wang <jasow...@redhat.com> > Cc: Xuan Zhuo <xuanz...@linux.alibaba.com> > Cc: "Eugenio Pérez" <epere...@redhat.com> > Cc: Andrew Morton <a...@linux-foundation.org> > Cc: Oscar Salvador <osalva...@suse.de> > Cc: Vlastimil Babka <vba...@suse.cz> > Cc: Suren Baghdasaryan <sur...@google.com> > Cc: Michal Hocko <mho...@suse.com> > Cc: Brendan Jackman <jackm...@google.com> > Cc: Johannes Weiner <han...@cmpxchg.org> > Cc: Zi Yan <z...@nvidia.com> > Cc: "Matthew Wilcox (Oracle)" <wi...@infradead.org> > > David Hildenbrand (2): > mm/memory_hotplug: PG_offline_skippable for offlining memory blocks > with PageOffline pages > mm/memory_hotplug: remove -EBUSY handling from scan_movable_pages() > > drivers/virtio/virtio_mem.c | 111 +----------------------------------- > include/linux/page-flags.h | 29 +++++++--- > mm/memory_hotplug.c | 22 ++----- > mm/page_alloc.c | 8 +-- > mm/page_isolation.c | 21 +++---- > 5 files changed, 40 insertions(+), 151 deletions(-) > > > base-commit: 2f6baf8dadecc2bec7d6bc931f7e0d58d8443d76 > -- > 2.49.0 -- Best Regards, Yan, Zi