l4-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EROS/Coyotos fault handers vs l4 pager hierarchy


From: Matthieu Lemerre
Subject: Re: EROS/Coyotos fault handers vs l4 pager hierarchy
Date: Fri, 21 Oct 2005 11:17:45 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

[...]

> Regarding hierarchy:
>
> We have established in previous emails that there tends to be a
> hierarchy of pagers in L4. The root of this hierarchy is privileged
> because it is the ultimate source of all pages. I think we have also
> established that REVOCABLE COPY introduces transitive dependencies, with
> the effect that any receiving process becomes dependent on the pager of
> the sending process for any capability that it receives.

I don't think there is such a hierarchy in L4.  A pager is only a
thread you choose to map you some memory (i.e. a fpage) when you
fault. So:

-fpages can be mapped to you by other threads than the pager
-If you don't fault, your pager is never* invoked

*: Except for startup, but that's a side issue.

Moreover, you can dynamically change of pager.  

What is hierarchic, though, is the mapping database of course.
>
> There is no comparable hierarchy in EROS. A fault handler's job is
>to repair a page fault or not. Once a COPY is completed, there is no
>further dependency on the sender's fault handler. In EROS, the
>hierarchy is a matter of storage allocation, not mapping recovery.

I really think that there is no dependency on the sender's fault
handler too on L4.  You can have a system which never invokes your
pager (like the system I described in my last mails).

>
> I think that I do not fully understand how paging (in the sense of
>swapping) works in L4, so the following is not meant to be a
>comparison, but I do find that persistence separated from fault
>handling seems to simplify things in my head. An EROS memory fault
>handler buys storage and inserts it into the address space (or not,
>if the fault will not be handled), but it is completely unaware of
>swap-paging.

The fact that sigma0 is called the root pager is probably misleading.
It could be better described as "the initial memory holder, which can
answers to the page fault protocol".

You're right, the L4 pagers have to do more job than in EROS.  But it
could just buy storage when it needs to, or request the fpage from a
swap server and remaps it to the application; I don't think this is
difficult.


With the EROS approach, it seems to me that you can't customize the
way swapping is done.  What we originally planned to do was that
applications could customize the way unused pages are sent to the
swap, so that applications whose statistical page fault model doesn't
fit well with the LRU algorithm could take advantage of it.  Would
that still be possible with EROS?

> As an aside, I *hate* the name *pager* in the L4 terminology. Every time
> I try to understand L4 pagers I find myself trying to figure out how
> they relate to swap-paging. L4 pagers do something that is related, but
> not closely related, and they clearly have a much more broader role in
> L4 than merely swap-paging. I find this tremendously confusing, because
> the name causes me to confuse the concepts. Just to be clear: this is
> *my* deficiency, not L4's.

Do you think page-fault handler would be a more appropriate
terminology?

Thanks,
Matthieu




reply via email to

[Prev in Thread] Current Thread [Next in Thread]