[coyotos-dev] Page pinning

Jonathan S. Shapiro shap at eros-os.com
Wed May 21 03:28:56 CDT 2008

Well, I've hit the point where I need to pin down the pinning design, as
it were. I've looked at this a bit, and here are my provisional
conclusions at the moment:

It basically looks straightforward to implement pinning. There are
complications when competing requests to pin arise, but the basic
resolution on that is that (a) a page can only be in one place at a
time, and (b) any resolution policy for competing pins doesn't belong in
the kernel. This is actually very nice, because it makes the supporting
kernel mechanism much simpler. :-)

There *is* an issue which concerns me, which might be stated as:

  What happens when somebody forgets to "drop" a pin request?

A partial defense lies in the fact that there is a bounded number of pin
request objects. A bad driver can "leak" pins, but this won't compromise
overall system integrity, and eventually we will notice. That is: we can
view this as a storage leak on the pin objects, and treat it as a bug to
be fixed.

A second partial defense lies in the fact that the pin objects can be
revoked, at which point the associated pin is canceled.

These two considerations may be entirely good enough, and for the moment
I propose to see whether that is all we need, but I wanted to point out
that this is a special case of a more general issue, which is the
"notify on last capability drop" issue.


More information about the coyotos-dev mailing list