Re: unmap() sometimes unmaps more pages than specified
Frank Mehnert <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Organization | InnoTek Systemberatung GmbH |
| Message-ID | <[email protected]> |
On Thursday 22 June 2006 14:11, Espen Skoglund wrote: > Uh... some confusion here. Does f=0 here mean unmap and f=1 mean > flush? Let's try to clear it up: I denoted the f bit of the control word in the unmap() syscall. > You have two spaces A and B. A has a 4MB page mapping. B has > received a 4KB page mapping from A. Currently we have: > > (1) A.Flush(4K) == A.Flush(4M) since A has a 4MB mapping. > (2) Likewise A.Unmap(4K) == A.Unmap(4M) since A has a 4MB mapping. > (3) B.Flush(4K) is fine since B has a 4KB mapping. > (4) Consequently A.Unmap(4K) != B.Flush(4K). > > I guess (4) is what you find difficult to handle, right? This would > work fine if (2) was not the case. Currently the implementation does Exactly! > (obviously) not behave this way. I'll give some thought to how this > could most easily be handled. The behaviour also raises some > questions about the semantics of resetting/reading reference bits, but > I think this could possibly be sorted out. Would greatly appreciate if that issue could be handled. I will prevent 4M mappings in my scenario so far. Thanks in advance, Frank -- ## InnoTek Systemberatung GmbH, http://www.innotek.de ##
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQBEmoxC6z8pigLf3EcRAn6EAJ9bcjFQQFwI1F7+wZRkmNd/G6MZVQCfeogf b7z0pK1mDmbuuPmu020buao= =w11M -----END PGP SIGNATURE-----