Re: [mm PATCH] memremap: Fix reference count for pgmap in devm_memremap_pages

From: Dan Williams
Date: Mon Oct 08 2018 - 20:21:08 EST


On Mon, Oct 8, 2018 at 4:34 PM Alexander Duyck
<alexander.h.duyck@xxxxxxxxxxxxxxx> wrote:
>
> In the earlier patch "mm: defer ZONE_DEVICE page initialization to the
> point where we init pgmap" I had overlooked the reference count that was
> being held per page on the pgmap. As a result on running the ndctl test
> "create.sh" we would call into devm_memremap_pages_release and encounter
> the following percpu reference count error and hang:
> WARNING: CPU: 30 PID: 0 at lib/percpu-refcount.c:155
> percpu_ref_switch_to_atomic_rcu+0xf3/0x120
>
> This patch addresses that by performing an update for all of the device
> PFNs in a single call. In my testing this seems to resolve the issue while
> still allowing us to retain the improvements seen in memory initialization.
>
> Reported-by: Dan Williams <dan.j.williams@xxxxxxxxx>

Tested-by: Dan Williams <dan.j.williams@xxxxxxxxx>

Thanks Alex!