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