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

Reply via email to