Sorry for the delay
El Tue, May 30, 2006 at 04:42:17PM +0200, Pierre THIERRY ens deleità amb les
> Scribit Lluis dies 30/05/2006 hora 01:14:
>> As of what I know, a proxy could only play a role when a page fault
>> occurs, so it wouldn't be able to proxy _all_ accesses (and thus not
>> all writes).
> Could you elaborate why?
Well, when writing this, I was thinking on the EROS' fault handler
hierarchy, which as its own name says, it's a page fault handler (the
hardware sends a page fault to the kernel, and in EROS triggers the fault
handler of the involved page node - i don't remember if all the fault
handlers are called upwards the page nodes hierarchy, or just the involved
node, the last would provide easy memory management wrapping -)
Even more, to be able to detect a memory write (or a memory access, in
general) you have the hardware memory protection system.
So, the only use I can think of wich can detect _all_ writes to memory is
using a COW system on every page you want to watch:
[Rd-only] ------> CheckAccess() --> [RdWr] --> ApplyWrite() --> [Rd-only] -->
Of course, this scheme has concurrency problems that would probably need
some atomic operation on the page (from '*write' to the '[Rd-only]' on the
And _of course_ this is veeeeeeeery slow.
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Listening: Apocalyptica (Reflections) - 7. Conclusion
L4-hurd mailing list