Messages in this thread |  | | Date | Tue, 11 May 2010 09:10:22 +0900 | | From | KAMEZAWA Hiroyuki <> | | Subject | Re: [PATCH 2/2] mm,migration: Avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks |
| |
On Mon, 10 May 2010 21:05:59 +0200 Andrea Arcangeli <aarcange@redhat.com> wrote:
> On Mon, May 10, 2010 at 12:41:07PM -0500, Christoph Lameter wrote: > > A simple way to disallow migration of pages is to increment the refcount > > of a page. > > Ok for migrate but it won't prevent to crash in split_huge_page rmap > walk, nor the PG_lock. Why for a rmap bug have a migrate specific fix? > The fix that makes execve the only special place to handle in every > rmap walk, is at least more maintainable than a fix that makes one of > the rmap walk users special and won't fix the others, as there will be > more than just 1 user that requires this. My fix didn't make execve > special and it didn't require execve knowledge into the every rmap > walk like migrate (split_huge_page etc...) but as long as the kernel > doesn't crash I'm fine ;). >
At first, I like step-by-step approach even if it makes our cost double because it's easy to understand and makes chasing change-log easy.
Ok, your split_huge_page() has some problems with current rmap+migration. But I don't like a patch for never-happen-now bug in change-log.
I believe it can be fixed by the same approach for execs. Renaming #define VM_STACK_INCOMPLETE_SETUP to be #define VM_TEMPORARY_INCONSITENT_RMAP in _your_ patch series and add some check in rmap_walk() seems enough.
Of course, I may misunderstand your problem. Could you show your patch which meets the problem with rmap+migration ?
Thanks, -Kame
|  |