Messages in this thread Patch in this message | | | Date | Wed, 09 May 2007 12:12:32 +0900 | From | Yasunori Goto <> | Subject | [RFC] memory hotremove patch take 2 [10/10] (retry swap-in page) |
| |
There is a race condition between swap-in and unmap_and_move(). When swap-in occur, page_mapped might be not set yet. So, unmap_and_move() gives up at once, and tries later.
Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
mm/migrate.c | 5 +++++ 1 files changed, 5 insertions(+)
Index: current_test/mm/migrate.c =================================================================== --- current_test.orig/mm/migrate.c 2007-05-08 15:08:09.000000000 +0900 +++ current_test/mm/migrate.c 2007-05-08 15:08:09.000000000 +0900 @@ -670,6 +670,11 @@ static int unmap_and_move(new_page_t get /* hold this anon_vma until remove_migration_ptes() finishes */ anon_vma_hold(page); } + + if (PageSwapCache(page) && !page_mapped(page)) + /* swap in now. try lator*/ + goto unlock; + /* * Establish migration ptes or remove ptes */ -- Yasunori Goto
- 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/
| |