Messages in this thread | | | Date | Tue, 14 May 2013 09:24:58 +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, Benjamin, Jeff,
On 05/13/2013 11:01 PM, Benjamin LaHaise wrote: > On Mon, May 13, 2013 at 10:54:03AM -0400, Jeff Moyer wrote: >> How do you propose to move the ring pages? > > It's the same problem as doing a TLB shootdown: flush the old pages from > userspace's mapping, copy any existing data to the new pages, then > repopulate the page tables. It will likely require the addition of > address_space_operations for the mapping, but that's not too hard to do. >
I think we add migrate_unpin() callback to decrease page->count if necessary, and migrate the page to a new page, and add migrate_pin() callback to pin the new page again.
The migrate procedure will work just as before. We use callbacks to decrease the page->count before migration starts, and increase it when the migration is done.
And migrate_pin() and migrate_unpin() callbacks will be added to struct address_space_operations.
Is that right ?
If so, I'll be working on it.
Thanks. :)
| |