Re: [PATCH v2] mm, zone_device: replace {get, put}_zone_device_page() with a single reference

From: Dan Williams
Date: Fri Apr 28 2017 - 13:41:42 EST


On Fri, Apr 28, 2017 at 10:34 AM, Jerome Glisse <jglisse@xxxxxxxxxx> wrote:
>> Kirill points out that the calls to {get,put}_dev_pagemap() can be
>> removed from the mm fast path if we take a single get_dev_pagemap()
>> reference to signify that the page is alive and use the final put of the
>> page to drop that reference.
>>
>> This does require some care to make sure that any waits for the
>> percpu_ref to drop to zero occur *after* devm_memremap_page_release(),
>> since it now maintains its own elevated reference.
>
> This is NAK from HMM point of view as i need those call. So if you remove
> them now i will need to add them back as part of HMM.

I thought you only need them at page free time? You can still hook __put_page().