Re: [PATCH 5/5] Swapless V2: Revise main migration logic

From: KAMEZAWA Hiroyuki
Date: Sun Apr 16 2006 - 20:18:21 EST


On Sat, 15 Apr 2006 10:41:59 -0700 (PDT)
Christoph Lameter <clameter@xxxxxxx> wrote:

> Note that there is an issue with your approach. If a migration entry is
> copied during fork then SWP_MIGRATION_WRITE must become SWP_MIGRATION_READ
> for some cases. Would you look into fixing this?
>

Thank you for pointing out the issue.

In my understanding, copy_page_range() is used at fork().
This finally calls copy_one_pte() and copies ptes one by one.

Maybe, I'll do like this.
==
438 if (unlikely(!pte_present(pte)) {
439 if (!pte_file(pte)) {
440 swap_duplicate(pte_to_swp_entry(pte));
entry = pte_to_swp_entry(pte);
#ifdef CONFIG_MIGRATION
if (is_migration_entry(entry)) {
......always copy as MIGRATION_READ.
}
#endif
441 /* make sure dst_mm is on swapoff's mmlist. */
442 if (unlikely(list_empty(&dst_mm->mmlist))) {
443 spin_lock(&mmlist_lock);
444 if (list_empty(&dst_mm->mmlist))
445 list_add(&dst_mm->mmlist,
446 &src_mm->mmlist);
447 spin_unlock(&mmlist_lock);
448 }
449 }
450 goto out_set_pte;
451 }
==

Thanks,
-Kame

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/