VMM: syscall for reordering pages in vm
From: Willibald Krenn
Date: Mon Nov 08 2004 - 06:30:49 EST
Quick Summary:
(Good or Bad?) Idea of implementing a syscall that allows
for virtual memory page exchange by modifying the physical<->virtual
page mapping. Intended usage: Moving pages in virtual memory without
the need to copy them. Feedback welcome!
Longer Version:
I need some advice from the Linux VMM-gurus on following idea: Suppose
a user-land program wants to re-order memory it has allocated and
suppose further that this program has done allocations in a way that the
reordering can be done by exchanging whole pages in virtual memory, as
indicated below.
Page5 Program.. (part 2)
Page4 swappedout/"free"
Page3 Program.. (part 3)
Page2 Program.. (part 4)
Page1 swappedout/"free"
Page0 Program.. (part 1)
How about implementing a system call that allows the user-program to
exchange pages? In the example above e.g. Page 5/Page 1 and
Page 3/Page 2.
As far as I understand, the system call would 'just' have to change the
physical<->virtual mapping of these pages and the exchange would be done
without having to copy -in the example above- 4*PageSize bytes in
userland. (Of course there are some additional benefits in the given
example, as there is no need to swap in a page as a buffer for the
copy-operation...)
However, before investigating this idea any further, I figured it would
be best to ask for comments from the experts here.. (I've barely any
knowledge about the Linux-VMM and therefore my idea might be complete
and utter nonsense.)
Any kind of feedback is greatly appreciated!
Thanks for all your time,
Willibald Krenn
-
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/