Re: [PATCH v3 0/3] mm/hwpoison: fix unpoison_memory()

From: David Hildenbrand
Date: Fri Nov 05 2021 - 06:58:23 EST


On 05.11.21 06:50, Naoya Horiguchi wrote:
> Hi,
>
> I updated the unpoison patchset based ou discussions over v2.
> Please see individual patches for details of updates.
>
> ----- (cover letter copied from v2) -----
> Main purpose of this series is to sync unpoison code to recent changes
> around how hwpoison code takes page refcount. Unpoison should work or
> simply fail (without crash) if impossible.
>
> The recent works of keeping hwpoison pages in shmem pagecache introduce
> a new state of hwpoisoned pages, but unpoison for such pages is not
> supported yet with this series.
>
> It seems that soft-offline and unpoison can be used as general purpose
> page offline/online mechanism (not in the context of memory error).

I'm not sure what the target use case would be TBH ... for proper memory
offlining/memory hotunplug we have to offline whole memory blocks. For
memory ballooning based mechanisms we simply allocate random free pages
and eventually trigger reclaim to make more random free pages available.
For memory hotunplug via virtio-mem we're using alloc_contig_range() to
allocate ranges of interest we logically unplug.

The only benefit compared to alloc_contig_range() might be that we can
offline smaller chunks -- alloc_contig_range() isn't optimized for
sub-MAX_ORDER granularity yet. But then, alloc_contig_range() should
much rather be extended.

Long story short, I'm not sure there is a sane use case for this
"general purpose page offline/online mechanism" ...

--
Thanks,

David / dhildenb