Re: [PATCH 3/4] add replace_page(): change the page pte is pointingto.

From: Andrew Morton
Date: Tue Apr 14 2009 - 18:15:47 EST


On Thu, 9 Apr 2009 06:58:40 +0300
Izik Eidus <ieidus@xxxxxxxxxx> wrote:

> replace_page() allow changing the mapping of pte from one physical page
> into diffrent physical page.

At a high level, this is very similar to what page migration does. Yet
this implementation shares nothing with the page migration code.

Can this situation be improved?

> this function is working by removing oldpage from the rmap and calling
> put_page on it, and by setting the pte to point into newpage and by
> inserting it to the rmap using page_add_file_rmap().
>
> note: newpage must be non anonymous page, the reason for this is:
> replace_page() is built to allow mapping one page into more than one
> virtual addresses, the mapping of this page can happen in diffrent
> offsets inside each vma, and therefore we cannot trust the page->index
> anymore.
>
> the side effect of this issue is that newpage cannot be anything but
> kernel allocated page that is not swappable.
>

--
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/