Messages in this thread | | | Subject | Re: [PATCH 2/5] Swapless V2: Add migration swap entries | From | Lee Schermerhorn <> | Date | Fri, 14 Apr 2006 10:27:43 -0400 |
| |
On Thu, 2006-04-13 at 22:25 -0700, Andrew Morton wrote: > Christoph Lameter <clameter@sgi.com> wrote: > > > > On Thu, 13 Apr 2006, Andrew Morton wrote: > > > > > Andrew Morton <akpm@osdl.org> wrote: > > > > > > > > Perhaps it would be better to go to > > > > sleep on some global queue, poke that queue each time a page migration > > > > completes? > > > > > > Or take mmap_sem for writing in do_migrate_pages()? That takes the whole > > > pagefault path out of the picture. > > > > We would have to take that for each task mapping the page. Very expensive > > operation. > > So... why does do_migrate_pages() take mmap_sem at all? > > And the code we're talking about here deals with anonymous pages, which are > not shared betweem mm's.
I think that anon pages are shared, copy-on-write, between parent and child after a fork(). If no exec() and no task writes the page, the sharing can become quite extensive. I encountered this testing the migrate-on-fault patches. With MPOL_MF_MOVE, these shared anon pages don't get migrated at all [sometimes this is what you want, sometimes not...], but with '_MOVE_ALL the shared anon pages DO get migrated, so you can have races between a faulting task and the migrating task.
Lee
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |