low-level message passing

Bryan Ford baford@schirf.cs.utah.edu
Wed, 21 Dec 94 14:24:27 MST


>   I also don't understand the "page-fault-on-return problem", unless you
>   mean it is another opportunity (of many) for users (including pagers) to
>   get into deadlock.
>
>I believe that Bryan is using "page fault on return" to refer to the
>case in which a client calls a server expecting a return, and on
>return the client's receive buffer is found to have an invalid page
>(i.e. one for which there is no mapping).  This really isn't a page
>fault issue.

It is if the system supports untrusted external pagers,
and the client's buffer happens to be managed by one.
The client quite likely has no knowledge of or control over
the pagein/pageout operations done by its pager; it's "just memory".
But if it calls some server with the receive buffer pointing to
some of this memory, and the external pager decides to page out
that memory while the server is running, then the page will be
gone when the server returns to the client and the kernel will
lose the data.  The page wasn't invalid at all; it was just
paged out by a pager that the kernel doesn't want to wait for.
So I would classify it as a "page fault" rather than an
"invalid page", although it's really just a matter of definition.
The important thing is that if external pagers are pervasive,
this problem is likely to be commonplace, whereas in KeyKOS
it was rare enough to be ignorable.

				Bryan