[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [PATCH] xen: mask XSAVE in cpuid since we don't allow guests to use it


  • To: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, Jeremy Fitzhardinge <jeremy@xxxxxxxx>
  • From: Boris Derzhavets <bderzhavets@xxxxxxxxx>
  • Date: Mon, 9 Mar 2009 04:18:37 -0700 (PDT)
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Marc - A. Dahlhaus \[ Administration | Westermann GmbH \]" <mad@xxxxxx>
  • Delivery-date: Mon, 09 Mar 2009 04:19:05 -0700
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=j4US+4btOmcHPXxidOJ3tSfQRRaYukLbsxjRKtORQHkuTVbPcHki0xEYyQshcgKiGk38cIdYVzwD5ifwNIWpBUjih5hCQAaRLyIGjMa+P3v2KxWMnXoMwX6AF8f8emQnbFMrukN5u8Zb5gyvqjNE6miT0qyvb6C0UofU3LgLqs4=;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

I was able to go through creating PV DomUs images via corresponding pygrub's profiles for F10,CentOS 5.2,SNV_106 (64-bit all).
However, only Solaris Nevada PV DomU gets loaded via standard
pygrub profile.

Attempt to load F10 PV:-

[2009-03-09 05:33:38 6351] DEBUG (XendDomainInfo:92) XendDomainInfo.create(['vm', ['name', 'F10PV'], ['memory', 2048], ['on_reboot', 'restart'], ['on_crash', 'restart'], ['vcpus', 1], ['on_xend_start', 'ignore'], ['on_xend_stop', 'ignore'], ['bootloader', '/usr/bin/pygrub'], ['bootloader_args', '-q'], ['image', ['linux', ['videoram', 4]]], ['device', ['vbd', ['uname', 'phy:/dev/sdb5'], ['dev', 'xvda'], ['mode', 'w']]], ['device', ['vif', ['bridge', 'eth0']]], ['device', ['vkbd']], ['device', ['vfb', ['vncunused', '1'], ['type', 'vnc'], ['xauthority', '/root/.Xauthority']]]])
[2009-03-09 05:33:38 6351] DEBUG (XendDomainInfo:2183) XendDomainInfo.constructDomain
[2009-03-09 05:33:38 6351] DEBUG (balloon:166) Balloon: 7239368 KiB free; need 2048; done.
[2009-03-09 05:33:38 6351] DEBUG (XendDomain:452) Adding Domain: 8
[2009-03-09 05:33:38 6351] DEBUG (XendDomainInfo:2362) XendDomainInfo.initDomain: 8 256
[2009-03-09 05:33:38 12975] DEBUG (XendBootloader:113) Launching bootloader as ['/usr/bin/pygrub', '--output=/var/run/xend/boot/xenbl.29001', '-q', '/dev/sdb5'].
[2009-03-09 05:33:39 6351] ERROR (XendBootloader:213) Boot loader didn't return any data!
[2009-03-09 05:33:39 6351] ERROR (XendDomainInfo:472) VM start failed
Traceback (most recent call last):
  File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 452, in start
    XendTask.log_progress(31, 60, self._initDomain)
  File "//usr/lib64/python/xen/xend/XendTask.py", line 209, in log_progress
    retval = func(*args, **kwds)
  File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 2364, in _initDomain
    self._configureBootloader()
  File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 2765, in _configureBootloader
    bootloader_args, kernel, ramdisk, args)
  File "//usr/lib64/python/xen/xend/XendBootloader.py", line 214, in bootloader
    raise VmError, msg

Attempt to load CentOS 5.2 PV:-

[2009-03-09 06:45:39 6351] DEBUG (XendDomainInfo:92) XendDomainInfo.create(['vm', ['name', 'RHEL52PV'], ['memory', 2048], ['vcpus', 1], ['on_xend_start', 'ignore'], ['on_xend_stop', 'ignore'], ['image', ['linux', ['videoram', 4]]], ['device', ['vbd', ['uname', 'phy:/dev/sdb5'], ['dev', 'xvda'], ['mode', 'w']]], ['device', ['vif', ['bridge', 'eth0']]]])
[2009-03-09 06:45:39 6351] DEBUG (XendDomainInfo:2183) XendDomainInfo.constructDomain
[2009-03-09 06:45:39 6351] DEBUG (balloon:166) Balloon: 7239368 KiB free; need 2048; done.
[2009-03-09 06:45:39 6351] DEBUG (XendDomain:452) Adding Domain: 12
[2009-03-09 06:45:39 6351] DEBUG (XendDomainInfo:2362) XendDomainInfo.initDomain: 12 256
[2009-03-09 06:45:39 16739] DEBUG (XendBootloader:113) Launching bootloader as ['/usr/bin/pygrub', '--output=/var/run/xend/boot/xenbl.15023', '/dev/sdb5'].
[2009-03-09 06:45:44 6351] ERROR (XendBootloader:213) Boot loader didn't return any data!
[2009-03-09 06:45:44 6351] ERROR (XendDomainInfo:472) VM start failed
Traceback (most recent call last):
  File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 452, in start
    XendTask.log_progress(31, 60, self._initDomain)
  File "//usr/lib64/python/xen/xend/XendTask.py", line 209, in log_progress
    retval = func(*args, **kwds)
  File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 2364, in _initDomain
    self._configureBootloader()
  File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 2765, in _configureBootloader
    bootloader_args, kernel, ramdisk, args)
  File "//usr/lib64/python/xen/xend/XendBootloader.py", line 214, in bootloader
    raise VmError, msg
VmError: Boot loader didn't return any data!









--- On Sun, 3/8/09, Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: [PATCH] xen: mask XSAVE in cpuid since we don't allow guests to use it
To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>
Cc: "Xen-devel" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Marc - A. Dahlhaus [ Administration | Westermann GmbH ]" <mad@xxxxxx>, "Boris Derzhavets" <bderzhavets@xxxxxxxxx>
Date: Sunday, March 8, 2009, 12:31 AM

Mask X86_FEATURE_XSAVE in cpuid leaf 1, ecx, as we don't allow guests to
use it (by setting cr4.OSXSAVE).

This prevents crashes in pvops dom0 kernels, as new versions of Linux try
to use this feature.

(This patch deals with dom0 cpuid; I'm not sure where the right place to
set up the default mask for domU is.)

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>

diff -r 7f573cb76db4 xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c Tue Mar 03 13:22:28 2009 +0000
+++ b/xen/arch/x86/traps.c Sat Mar 07 17:02:03 2009 -0800
@@ -757,6 +757,7 @@
__clear_bit(X86_FEATURE_XTPR % 32, &c);
__clear_bit(X86_FEATURE_PDCM % 32, &c);
__clear_bit(X86_FEATURE_DCA % 32, &c);
+ __clear_bit(X86_FEATURE_XSAVE % 32, &c);
if ( !cpu_has_apic )
__clear_bit(X86_FEATURE_X2APIC % 32, &c);
__set_bit(X86_FEATURE_HYPERVISOR % 32, &c);
diff -r 7f573cb76db4 xen/include/asm-x86/cpufeature.h
--- a/xen/include/asm-x86/cpufeature.h Tue Mar 03 13:22:28 2009 +0000
+++ b/xen/include/asm-x86/cpufeature.h Sat Mar 07 17:02:03 2009 -0800
@@ -95,6 +95,7 @@
#define X86_FEATURE_SSE4_2 (4*32+20) /* Streaming SIMD Extensions 4.2 */
#define X86_FEATURE_X2APIC (4*32+21) /* Extended xAPIC */
#define X86_FEATURE_POPCNT (4*32+23) /* POPCNT instruction */
+#define X86_FEATURE_XSAVE (4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */
#define X86_FEATURE_HYPERVISOR (4*32+31) /* Running under some hypervisor */

/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.