[Jacob Gorm Hansen]
On Tue, Oct 01, 2002 at 05:06:16PM +0200, Jean Wolter wrote:
Jacob Gorm Hansen jg@ioi.dk writes: Sigma0 rejected requests for a page it had already given away and had no interface for flush requests which where needed for vmfree(). So we use the ping pong task to establish mappings (by mapping the page to the ping pong address space and granting it back immediately) and are able to unmap the page ourself.
OK, but with a modern L4 I should be able to convert pingpong into a thread, correct?
The reason why a task can not map a page within its own address space is that it opens up the possibility for DOS attacks from a single task; mapping database entries take up space, and for some mapping database implementations one might want to limit the depth of the mapping tree. Of course, two colluding tasks can still perform the same attacks, but in the two-task scenario one can (at least in theory) prevent the attacks by inserting an IPC monitoring task in between the colluding tasks.
eSk