Re: mapping pages into new address spaces
Espen Skoglund <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
[Joshua Haberman] > What I am proposing is to make the second case more like the first. > Make all MapItem/GrantItem IPCs that come from a thread's pager > behave like IPCs sent in response to page faults, namely: > 1. they are not subject to a thread's acceptor > 2. they automatically take effect without being explicitly received In effect, what you're proposing is to add some special case where L4 IPC is no longer synchronous. L4 IPC is synchronous for a good reason. It is *the* major reason why IPC can be implemented efficiently. Introducing such asynch IPCs also opens up a whole can of worms in the implementation itself, not to mention the mess you make out of the API specification. Just treat the pagefault protocol as regular IPCs. Avoid special cases. This gives you the simplest and most efficient implementation. > The one downside of this is that it counts on the thread to set its > acceptor properly, or the pager's fpage will go to the wrong place. > It seems like a pager should have complete control over its threads' > address spaces, and be able to map things wherever it wants, > whenever it wants to. If the thread sets its acceptor to the entire address space, how can the pager's fpage go to the wrong place? If the programmer is not able to set the acceptor to L4_CompleteAddressSpace then he should seriously consider to take up gardening, news reporting, accounting, or some such instead. > Does this make sense? No. Not really. Sorry. ;-) eSk