This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] [PATCH] Create XEN_DOMCTL_set_opt_feature

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Create XEN_DOMCTL_set_opt_feature
From: Alex Williamson <alex.williamson@xxxxxx>
Date: Wed, 28 Nov 2007 11:39:32 -0700
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 28 Nov 2007 10:40:14 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C3735853.19245%Keir.Fraser@xxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: OSLO R&D
References: <C3735853.19245%Keir.Fraser@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Wed, 2007-11-28 at 17:39 +0000, Keir Fraser wrote:
> On 28/11/07 17:31, "Alex Williamson" <alex.williamson@xxxxxx> wrote:
> >    This patch goes along with the guest_os_type domain config patch.
> > Once we know what the guest OS is in the builder code, we need a
> > mechanism to set optimization features for that guest.  This is done via
> > a new XEN_DOMCTL as shown in the patch below.  This only has ia64
> > specific contents at the moment, but could be expanded for x86.  I
> > expect the contents of the structure will mostly be architecture
> > specific.  Thanks,
> If you use this in the builder, why do you need a hvm param at all? In any
> case I don't like the encoding of OS strings into hvm_param integers. Either
> the concept of 'OS type' should not be visible to Xen, or a proper
> enumeration should be defined, or if you want a string then the builder
> should stick it in memory for your virtual boot firmware to pick up.

Hi Keir,

   You're right, thanks for bringing it to my attention that storing it
in an hvm_param is simply unnecessary.  If we add the guest_os_type
config option as per the new patch below, and still add the
XEN_DOMCTL_set_opt_feature call, everything else can be done in
architecture code.  I'll make a pyxc binding to an xc_ia64_set_os_type
that gets passed self.guest_os_type and makes use of set_opt_feature.
This avoids munging the string into an integer entirely and keeps
guest_os_type out of Xen.  Does this look more reasonable?  Please also
apply this and the original XEN_DOMCTL_set_opt_feature patch if so.


Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>

diff -r c555a5f97982 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Wed Nov 28 13:36:56 2007 +0000
+++ b/tools/python/xen/xend/XendConfig.py       Wed Nov 28 09:48:59 2007 -0700
@@ -129,7 +129,8 @@ XENAPI_PLATFORM_CFG = [ 'acpi', 'apic', 
                         'nographic', 'pae', 'rtc_timeoffset', 'serial', 'sdl',
                         'soundhw','stdvga', 'usb', 'usbdevice', 'vnc',
                         'vncconsole', 'vncdisplay', 'vnclisten', 'timer_mode',
-                        'vncpasswd', 'vncunused', 'xauthority', 'pci', 'vhpt']
+                        'vncpasswd', 'vncunused', 'xauthority', 'pci', 'vhpt',
+                        'guest_os_type' ]
 # Xen API console 'other_config' keys.
 XENAPI_CONSOLE_OTHER_CFG = ['vncunused', 'vncdisplay', 'vnclisten',
diff -r c555a5f97982 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Wed Nov 28 13:36:56 2007 +0000
+++ b/tools/python/xen/xend/image.py    Wed Nov 28 11:22:38 2007 -0700
@@ -426,6 +426,7 @@ class HVMImageHandler(ImageHandler):
         self.apic = int(vmConfig['platform'].get('apic', 0))
         self.acpi = int(vmConfig['platform'].get('acpi', 0))
+        self.guest_os_type = vmConfig['platform'].get('guest_os_type')
     # Return a list of cmd line args to the device models based on the
     # xm config file
diff -r c555a5f97982 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Wed Nov 28 13:36:56 2007 +0000
+++ b/tools/python/xen/xm/create.py     Wed Nov 28 09:48:59 2007 -0700
@@ -453,6 +453,10 @@ gopts.var('usbdevice', val='NAME',
 gopts.var('usbdevice', val='NAME',
           fn=set_value, default='',
           use="Name of USB device to add?")
+gopts.var('guest_os_type', val='NAME',
+          fn=set_value, default='default',
+          use="Guest OS type running in HVM")
 gopts.var('stdvga', val='no|yes',
           fn=set_bool, default=0,
@@ -733,7 +737,9 @@ def configure_hvm(config_image, vals):
              'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'soundhw',
              'vnc', 'vncdisplay', 'vncunused', 'vncconsole', 'vnclisten',
              'sdl', 'display', 'xauthority', 'rtc_timeoffset', 'monitor',
-             'acpi', 'apic', 'usb', 'usbdevice', 'keymap', 'pci' ]
+             'acpi', 'apic', 'usb', 'usbdevice', 'keymap', 'pci',
+             'guest_os_type']
     for a in args:
         if a in vals.__dict__ and vals.__dict__[a] is not None:
             config_image.append([a, vals.__dict__[a]])

Xen-devel mailing list