[Lguest] [PULL] lguest fixes: for lguest-under-kvm and older CPU configs
Rusty Russell
rusty at rustcorp.com.au
Wed Apr 14 22:17:35 EST 2010
The following changes since commit 2ba3abd8186f24c7fb418927025b4e2120e3a362:
Linus Torvalds (1):
Merge branch 'pm-fixes' of git://git.kernel.org/.../rafael/suspend-2.6
are available in the git repository at:
ssh://master.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus.git master
Rusty Russell (2):
lguest: workaround cmpxchg8b_emu by ignoring cli in the guest.
lguest: stop using KVM hypercall mechanism
arch/x86/include/asm/lguest_hcall.h | 29 +++++++++++++---
arch/x86/lguest/boot.c | 61 +++++++++++++++++------------------
arch/x86/lguest/i386_head.S | 2 +-
drivers/lguest/lguest_device.c | 4 +-
drivers/lguest/x86/core.c | 12 +++++++
5 files changed, 68 insertions(+), 40 deletions(-)
commit 5094aeafbbd500509f648e3cd102b053bc7926b3
Author: Rusty Russell <rusty at rustcorp.com.au>
Date: Wed Apr 14 21:43:53 2010 -0600
lguest: workaround cmpxchg8b_emu by ignoring cli in the guest.
It's only used by cmpxchg8b_emu (see db677ffa5f5a for the gory
details), and fixing that to be paravirt aware would be more work than
simply ignoring it (and AFAICT only help lguest). This makes lguest
work on machines which have cmpxchg8b, for kernels compiled for older
processors.
(We can't emulate it properly: the popf which expects to restore interrupts
does not trap).
Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
Cc: Jeremy Fitzhardinge <jeremy at xensource.com>
Cc: virtualization at lists.osdl.org
drivers/lguest/x86/core.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
commit 091ebf07a2408f9a56634caa0f86d9360e9af23b
Author: Rusty Russell <rusty at rustcorp.com.au>
Date: Wed Apr 14 21:43:54 2010 -0600
lguest: stop using KVM hypercall mechanism
This is a partial revert of 4cd8b5e2a159 "lguest: use KVM hypercalls";
we revert to using (just as questionable but more reliable) int $15 for
hypercalls. I didn't revert the register mapping, so we still use the
same calling convention as kvm.
KVM in more recent incarnations stopped injecting a fault when a guest
tried to use the VMCALL instruction from ring 1, so lguest under kvm
fails to make hypercalls. It was nice to share code with our KVM
cousins, but this was overreach.
Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
Cc: Matias Zabaljauregui <zabaljauregui at gmail.com>
Cc: Avi Kivity <avi at redhat.com>
arch/x86/include/asm/lguest_hcall.h | 29 +++++++++++++---
arch/x86/lguest/boot.c | 61 +++++++++++++++++------------------
arch/x86/lguest/i386_head.S | 2 +-
drivers/lguest/lguest_device.c | 4 +-
4 files changed, 56 insertions(+), 40 deletions(-)
More information about the Lguest
mailing list