Messages in this thread | | | Date | Thu, 16 May 2013 13:54:18 +0800 | From | Tang Chen <> | Subject | Re: [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable() |
| |
Hi Mel,
On 05/15/2013 09:24 PM, Mel Gorman wrote: > If it is to be an address space operations sturcture then you'll need a > pseudo mapping structure for anonymous pages that are pinned by aio -- > similar in principal to how swapper_space is used for managing PageSwapCache > or how anon_vma structures can be associated with a page. > > However, I warn you that you may find that the address_space is the > wrong level to register such callbacks, it just seemed like the obvious > first choice. A potential alternative implementation is to create a 1:1 > association between pages and a long-lived holder that is stored on a hash > table (similar style of arrangement as page_waitqueue). A page is looked up > in the hash table and if an entry exists, it points to an callback structure > to the subsystem holding the pin. It's up to the subsystem to register the > callbacks when it is about to pin a page (get_user_pages_longlived(...., > &release_ops) and figure out how to release the pin safely. >
OK, I'll try to figure out a proper place to put the callbacks. But I think we need to add something new to struct page. I'm just not sure if it is OK. Maybe we can discuss more about it when I send a RFC patch.
Thanks for the advices, and I'll try them.
Thanks. :)
| |