[ 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

Reply via email to