[ from fwts-devel ] On 02/02/2012 05:46 AM, Colin King wrote: > From: Colin Ian King<colin.k...@canonical.com> > > Bochs firmware based QEMU systems on some configurations get > General Protection Faults when running the MSR tests. Since this > isn't real hardware that we care about we can just kludge around > this by not allowing the MSR tests in Bochs based systems. > > Signed-off-by: Colin Ian King<colin.k...@canonical.com> > --- > src/cpu/msr/msr.c | 19 +++++++++++++++++++ > 1 files changed, 19 insertions(+), 0 deletions(-) > > diff --git a/src/cpu/msr/msr.c b/src/cpu/msr/msr.c > index d6aa00e..5de27a7 100644 > --- a/src/cpu/msr/msr.c > +++ b/src/cpu/msr/msr.c > @@ -30,6 +30,8 @@ static fwts_cpuinfo_x86 *cpuinfo; > > static int msr_init(fwts_framework *fw) > { > + char *bios_vendor; > + > if ((cpuinfo = fwts_cpu_get_info(0)) == NULL) { > fwts_log_error(fw, "Cannot get CPU info"); > return FWTS_ERROR; > @@ -45,6 +47,23 @@ static int msr_init(fwts_framework *fw) > fwts_log_error(fw, "Cannot detect the number of CPUs on this > machine."); > return FWTS_ABORTED; > } > + > + /* > + * Running MSR tests inside virtual machines such as QEMU with some > kernel/kvm > + * combinations have been observed to cause GPFs. We kludge around this > by > + * avoiding MSR tests for a Bochs BIOS based QEMU virtual machine. > + */ > + if ((bios_vendor = fwts_get("/sys/class/dmi/id/bios_vendor")) != NULL) { > + if (strstr(bios_vendor, "Bochs")) { > + fwts_log_error(fw, > + "MSR test being avoiding inside a virtual machine as " > + "this is known to cause General Protection Faults on " > + "some configurations."); > + free(bios_vendor); > + return FWTS_SKIP; > + } > + free(bios_vendor); > + } > return FWTS_OK; > } >
Put together a test build[0] of fwts-live based with kernel 3.2.0-14.23 + fwts version 0.24.17 + this patch patch[1]: * [0] -- http://hwe.ubuntu.com/fwts-live/test_images/fwts-live-oneiric-amd64-experimental-usb-hdd-20120204-0.img * [1] -- http://kernel.ubuntu.com/git?p=vanhoof/fwts.git;a=shortlog;h=refs/heads/kvm-msr-test * [1] -- https://launchpad.net/~vanhoof/+archive/fwts-sandbox/+packages """ $ sudo kvm -m 512 -hda fwts-live-oneiric-amd64-experimental-usb-hdd-20120204-0.img --vga vmware [ while in kvm instance ] $ dmesg | grep BOCHS ACPI: RSDP 00000000000fd9a0 00014 (v00 BOCHS ) $ dpkg -l fwts [...] ii fwts 0.24.17ubuntu1 Firmware Test Suite $ sudo fwts msr Running 1 tests. results appended to results.log Test: MSR register tests Test skipped.. """ Everything looks good on my end and the rest of the --batch tests continue as expected. Thanks Colin! --chris Tested-by: Chris Van Hoof <vanh...@canonical.com> ** Changed in: fwts (Ubuntu) Status: New => Triaged -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/925001 Title: fwts segfaults executing the msr test in a kvm instance when using Precise as the host OS To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/fwts/+bug/925001/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs