On 30/04/17 05:14 PM, Jerome Glisse wrote: > HMM ZONE_DEVICE pages are use like other pages (anonymous or file back page) > in _any_ vma. So i need to know when a page is freed ie either as result of > unmap, exit or migration or anything that would free the memory. For zone > device a page is free once its refcount reach 1 so i need to catch refcount > transition from 2->1 > > This is the only way i can inform the device that the page is now free. See > > https://cgit.freedesktop.org/~glisse/linux/commit/?h=hmm-v21&id=52da8fe1a088b87b5321319add79e43b8372ed7d > > There is _no_ way around that. I had a similar issue in a piece of my p2pmem RFC [1]. I hacked around it by tracking the pages separately and freeing them when the vma is closed. This is by no means a great solution, it certainly has it's own warts. However, maybe it will spark some ideas for some alternate choices which avoid the hot path. Another thing I briefly looked at was hooking the vma close process earlier so that it would callback in time that you can loop through the pages and do your free process. Of course this all depends on the vma not getting closed while the pages have other references. So it may not work at all. Again, just ideas. Logan [1] https://github.com/sbates130272/linux-p2pmem/commit/77c631d92cb5c451c9824b3a4cf9b6cddfde6bb7 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>