Messages in this thread | | | Date | Tue, 22 Feb 2005 12:45:21 -0600 | From | Ray Bryant <> | Subject | Re: [RFC 2.6.11-rc2-mm2 0/7] mm: manual page migration -- overview II |
| |
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 have to have some way to clear PG_MIGRATED once all of the migrate_pages() calls are complete (we can't have the anonymous page migrate_pages() calls clear the flags, since the second such call would find the flag clear and remigrate the pages in the overlapping nodes case.)
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.
> BTW it might be better to make va_end a size, just to be more > symmetric with mlock,madvise,mmap et.al. >
Yes,.that's been pointed out to me before. Let's make it so.
-- Best Regards, Ray ----------------------------------------------- Ray Bryant 512-453-9679 (work) 512-507-7807 (cell) raybry@sgi.com raybry@austin.rr.com The box said: "Requires Windows 98 or better", so I installed Linux. ----------------------------------------------- - 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/
| |