[Lguest] Lguest Improvement

Rusty Russell rusty at rustcorp.com.au
Tue Dec 7 12:01:01 EST 2010


On Mon, 6 Dec 2010 08:42:46 pm eviatar wrote:
> Hi Rusty,
> 
> As I see it there are two possibilities:
> 1) The straight forward way but maybe not modular: Duplicate all of this
> manually (BTW how pagetables could be reconstructed?)
> 2) More adventurer way: start a new guest (after fork() and LHREQ_SAVE)
> using LHREQ_INIT with the added functionality to receive all the
> registers, not only eip.

(2) Rename LHREQ_INIT to LHREQ_START or something, and have it take all the
registers.

BTW, please take care to make sure the work is done in small pieces!  I use
guilt on top of git to manage patch sets like this, so I can jump back and
forth and add new patches.

I am thinking of changing how pagetables work; the kernel has changed
again, and in Linus' latest kernel lguest is broken.  The new approach would
mean starting in a special "linear" mode (no page tables) until the guest
loads cr3.  This would be simpler, I think, than the current startup code
which creates a temporary pagetable at the top of memory and hopes the kernel
won't overwrite it...

Cheers,
Rusty.
PS.  CC'd the mailing list, as I'm sure others are interested in this work!


More information about the Lguest mailing list