Re: [v1 2/2] device-dax: "Hotremove" persistent memory that is used like normal RAM

From: Pavel Tatashin
Date: Sat Apr 20 2019 - 13:02:10 EST

> > Thank you for looking at this. Are you saying, that if drv.remove()
> > returns a failure it is simply ignored, and unbind proceeds?
> Yeah, that's the problem. I've looked at making unbind able to fail,
> but that can lead to general bad behavior in device-drivers. I.e. why
> spend time unwinding allocated resources when the driver can simply
> fail unbind? About the best a driver can do is make unbind wait on
> some event, but any return results in device-unbind.

Hm, just tested, and it is indeed so.

I see the following options:

1. Move hot remove code to some other interface, that can fail. Not
sure what that would be, but outside of unbind/remove_id. Any
2. Option two is don't attept to offline memory in unbind. Do
hot-remove memory in unbind if every section is already offlined.
Basically, do a walk through memblocks, and if every section is
offlined, also do the cleanup.