Messages in this thread Patch in this message | | | Date | Mon, 30 Jul 2007 16:00:13 +0300 | From | Avi Kivity <> | Subject | Re: 2.6.23-rc1, KVM-AMD problem |
| |
Alistair John Strachan wrote: > On Sunday 29 July 2007 14:47:57 you wrote: > >> Alistair John Strachan wrote: >> >>> On Sunday 29 July 2007 12:34:28 you wrote: >>> [snip] >>> >>> >>>>> Doesn't help, I still get the same crashes. I tried 2.6.22 again and >>>>> it's rock solid by comparison. >>>>> >>>> Do you mean, kvm-33 on top of 2.6.22, or the kvm modules from 2.6.22? >>>> Please describe your configuration *exactly*. >>>> >>> I'm using the kvm-33 *userspace* package (based on Debian's kvm-28 >>> packaging) and 2.6.23-rc1's KVM modules. I patched 2.6.23-rc1 with the >>> patch you provided in your last email. So I'm not using -git HEAD. >>> >>> Maybe there's been additional necessary fixes to -git requiring me to >>> update to HEAD? That wasn't clear from your last email. >>> >> No, that patch is the only potential fix post -rc1. There are a few >> other fixes there, but they are intended to avoid guest crashes, not >> host crashes. >> >> What guest are you running? Maybe I can reproduce it here. >> > > Right now, Windows XP. I'm pretty sure Linux (well, Debian Etch) works fine. I > could only get Windows to install with -no-acpi, but I run it with the > following (if this is at all useful): > > kvm -no-acpi -m 256 -hda $IMAGE -net nic -net tap,script=/etc/kvm/kvm-ifup > > Basically, the installer seems to work fine, but Windows seemed to have > problems after installing post-SP2 updates. Maybe that's why not everybody is > seeing it yet. > >
How about the attached patch? (I haven't yet tried to reproduce, but this can cause an AMD-only oops).
-- error compiling committee.c: too many arguments to function
commit 80917728e43e248155c019f743655806b582b099 Author: Avi Kivity <avi@qumranet.com> Date: Mon Jul 30 15:56:36 2007 +0300
KVM: x86 emulator: disable writeback for debug register instructions
These are handled internally by the instruction.
Signed-off-by: Avi Kivity <avi@qumranet.com>
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index 1a90ba0..2136da5 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -1222,11 +1222,13 @@ twobyte_insn: } break; case 0x21: /* mov from dr to reg */ + no_wb = 1; if (modrm_mod != 3) goto cannot_emulate; rc = emulator_get_dr(ctxt, modrm_reg, &_regs[modrm_rm]); break; case 0x23: /* mov from reg to dr */ + no_wb = 1; if (modrm_mod != 3) goto cannot_emulate; rc = emulator_set_dr(ctxt, modrm_reg, _regs[modrm_rm]); | |