[Lguest] [PATCH 4/5] lguest: use KVM hypercalls
Matias Zabaljauregui
zabaljauregui at gmail.com
Thu Apr 9 06:58:39 EST 2009
Simon, Patrick,
On Wed, 2009-04-08 at 10:21 +0930, Rusty Russell wrote:
> On Tuesday 07 April 2009 04:19:58 Matias Zabaljauregui wrote:
> > But then, when it tries to re-execute the faulting instruction, which is
> > now patched with "cd 1f 90" (int 0x1f, nop), it raises an invalid code
> > fault again, instead of doing the trap.
>
> COW on the page? Perhaps try flushing all the shadow pagetables after a
> rewrite?
>
> Rusty.
Rusty suggested that perhaps we need to flush all shadow after rewriting.
Could you please try this patch?
BTW, shouldn't this also affect my test boxes if this were the case?
Thanks,
Matias
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
index a6b7176..b4747f7 100644
--- a/drivers/lguest/x86/core.c
+++ b/drivers/lguest/x86/core.c
@@ -324,6 +324,7 @@ static void rewrite_hypercall(struct lg_cpu *cpu)
u8 insn[3] = {0xcd, 0x1f, 0x90};
__lgwrite(cpu, guest_pa(cpu, cpu->regs->eip), insn, sizeof(insn));
+ guest_pagetable_clear_all(cpu);
}
static bool is_hypercall(struct lg_cpu *cpu)
More information about the Lguest
mailing list