Re: [PATCH 02/10] mm,madvise: call soft_offline_page() without MF_COUNT_INCREASED

From: Naoya Horiguchi
Date: Wed Sep 11 2019 - 21:39:38 EST


On Wed, Sep 11, 2019 at 12:27:22PM +0200, David Hildenbrand wrote:
> On 10.09.19 12:30, Oscar Salvador wrote:
> > From: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
> >
> > Currently madvise_inject_error() pins the target via get_user_pages_fast.
> > The call to get_user_pages_fast is only to get the respective page
> > of a given address, but it is the job of the memory-poisoning handler
> > to deal with races, so drop the refcount grabbed by get_user_pages_fast.
> >
>
> Oh, and another question "it is the job of the memory-poisoning handler"
> - is that already properly implemented? (newbee question Â\_(ã)_/Â)

The above description might be confusing, sorry. It's intended likes

The call to get_user_pages_fast is only to get the pointer to struct
page of a given address, pinning it is memory-poisoning handler's job,
so drop the refcount grabbed by get_user_pages_fast.

And pinning is done in get_hwpoison_page() for hard-offline and
get_any_page() for soft-offline. For soft-offline case, the semantics of
refcount of poisoned pages is what this patchset tries to change/improve.

Thanks,
Naoya Horiguchi