Re: [RFC 2.6.11-rc2-mm2 0/7] mm: manual page migration -- overview II

Andi Kleen
2005-02-22T18:50:52Z

On Tue, Feb 22, 2005 at 12:45:21PM -0600, Ray Bryant wrote:
> Andi Kleen wrote:
>
> >
> >How about you add the va_start, va_end but only accept them
> >when pid is 0 (= current process). Otherwise enforce with EINVAL
> >that they are both 0. This way you could map the
> >shared object into the batch manager, migrate it there, then
> >mark it somehow to not be migrated further, and then
> >migrate the anonymous pages using migrate_pages(pid, ...)
> >
>
> We'd have to use up a struct page flag (PG_MIGRATED?) to mark
> the page as migrated to keep the call to migrate_pages() for
> the anonymous pages from migrating the pages again. Then we'd

I was more thinking of a new mempolicy or a flag for one.
Flag would be probably better. No need to keep state in struct page.

> How about ignoring the va_start and va_end values unless
> either:
>
> pid == current->pid
> or current->euid == 0 /* we're root */
>
> I like the first check a bit better than checking for 0. Are
> there other system calls that follow that convention (e. g.
> pid = 0 implies current?)
>
> The second check lets a sufficiently responsible task manipulate
> other tasks. This task can choose to have the target tasks
> suspended before it starts fussing with them.

I don't like that. The idea behind this restriction is to simplify
things by making sure only processes change their own VM. Letting
root overwrite this doesn't make much sense.

-Andi