Jens Nerche wrote:
> 
> >> Things are still rough, and I have not plugged the generated
> >> page exceptions into the rest of the existing emulation yet.
> >
> >ISTR that Jens Nerche wanted to work on a page fault hander.
> >Jens, do you already have something working?
> Back after being some time offline, now I try to get support for virtualized
> page tables working. Therefore I put an entry for virtual cr3 into
> nexus.S and monitor.h (struct nexus_t), but the (real ;) hardware
> reboots. Without "virtual cr3" it works fine. Any hints?
> I'm very interested in how Kevin juggles with pages - guess our
> changes (should) interact.


My plan is this.  When there is a change in CR3, dump
our understanding of the virtualized page tables.  Use
the guest tables to build a new one.  We have to cover
the pages used by the guest for page tables, with some
kind of page protection, so we can monitor guest access to
them.  So there are 2 sets of tables.  One is the actual
guest memory containing what it thinks are the real
page tables.  And one set we create, which the processor
actually uses.

For the moment I decided to review the monitor code,
WRT how all the address spaces work, and then I'll
generate some diagrams depicting this.  This
will make it easier for people to understand how
things work.  And I like having some graphic representations
myself.  We can toss this into the docs.

-Kevin

Reply via email to