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

[Xen-devel] [PATCH 1/4] [HVM] introduce numanodes=n config file option



Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>

# HG changeset patch
# User andre.przywara@xxxxxxx
# Date 1186489698 -7200
# Node ID 0534ec5aa830c665ac95bc0750a22cd6c5413733
# Parent  c362bcee8047d3d30b8c7655d26d8a8702371b6f
added numanodes=n config file option

diff -r c362bcee8047 -r 0534ec5aa830 tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Sun Aug 12 16:09:13 2007 +0100
+++ b/tools/python/xen/lowlevel/xc/xc.c Tue Aug 07 14:28:18 2007 +0200
@@ -537,14 +537,16 @@ static PyObject *pyxc_hvm_build(XcObject
 #endif
     char *image;
     int store_evtchn, memsize, vcpus = 1, pae = 0, acpi = 0, apic = 1;
+    int numanodes = 0;
     unsigned long store_mfn;
 
     static char *kwd_list[] = { "domid", "store_evtchn",
                                "memsize", "image", "vcpus", "pae", "acpi",
-                               "apic", NULL };
-    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiis|iiii", kwd_list,
+                               "apic", "numanodes", NULL };
+    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiis|iiiii", kwd_list,
                                       &dom, &store_evtchn, &memsize,
-                                      &image, &vcpus, &pae, &acpi, &apic) )
+                                      &image, &vcpus, &pae, &acpi, &apic,
+                                      &numanodes) )
         return NULL;
 
     if ( xc_hvm_build(self->xc_handle, dom, memsize, image) != 0 )
@@ -564,6 +566,7 @@ static PyObject *pyxc_hvm_build(XcObject
     va_hvm->acpi_enabled = acpi;
     va_hvm->apic_mode    = apic;
     va_hvm->nr_vcpus     = vcpus;
+    va_hvm->numanodes    = numanodes;
     for ( i = 0, sum = 0; i < va_hvm->length; i++ )
         sum += ((uint8_t *)va_hvm)[i];
     va_hvm->checksum = -sum;
diff -r c362bcee8047 -r 0534ec5aa830 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Sun Aug 12 16:09:13 2007 +0100
+++ b/tools/python/xen/xend/XendConfig.py       Tue Aug 07 14:28:18 2007 +0200
@@ -124,6 +124,7 @@ LEGACY_CFG_TO_XENAPI_CFG = reverse_dict(
 # Platform configuration keys.
 XENAPI_PLATFORM_CFG = [ 'acpi', 'apic', 'boot', 'device_model', 'display', 
                         'fda', 'fdb', 'keymap', 'isa', 'localtime', 'monitor', 
+                        'numanodes',
                         'nographic', 'pae', 'rtc_timeoffset', 'serial', 'sdl',
                         'soundhw','stdvga', 'usb', 'usbdevice', 'vnc',
                         'vncconsole', 'vncdisplay', 'vnclisten',
diff -r c362bcee8047 -r 0534ec5aa830 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Sun Aug 12 16:09:13 2007 +0100
+++ b/tools/python/xen/xend/image.py    Tue Aug 07 14:28:18 2007 +0200
@@ -277,6 +277,7 @@ class HVMImageHandler(ImageHandler):
         self.pae  = int(vmConfig['platform'].get('pae',  0))
         self.apic = int(vmConfig['platform'].get('apic', 0))
         self.acpi = int(vmConfig['platform'].get('acpi', 0))
+        self.numanodes = int(vmConfig['platform'].get('numanodes', 0))
         
 
     def buildDomain(self):
@@ -292,6 +293,7 @@ class HVMImageHandler(ImageHandler):
         log.debug("pae            = %d", self.pae)
         log.debug("acpi           = %d", self.acpi)
         log.debug("apic           = %d", self.apic)
+        log.debug("numanodes      = %d", self.numanodes)
 
         rc = xc.hvm_build(domid          = self.vm.getDomid(),
                           image          = self.kernel,
@@ -300,6 +302,7 @@ class HVMImageHandler(ImageHandler):
                           vcpus          = self.vm.getVCpuCount(),
                           pae            = self.pae,
                           acpi           = self.acpi,
+                          numanodes      = self.numanodes,
                           apic           = self.apic)
         rc['notes'] = { 'SUSPEND_CANCEL': 1 }
         return rc
diff -r c362bcee8047 -r 0534ec5aa830 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Sun Aug 12 16:09:13 2007 +0100
+++ b/tools/python/xen/xm/create.py     Tue Aug 07 14:28:18 2007 +0200
@@ -201,6 +201,10 @@ gopts.var('apic', val='APIC',
 gopts.var('apic', val='APIC',
           fn=set_int, default=1,
           use="Disable or enable APIC mode.")
+
+gopts.var('numanodes', val='NUMANODES',
+          fn=set_int, default=0,
+          use="Number of NUMA nodes in the domain.")
 
 gopts.var('vcpus', val='VCPUS',
           fn=set_int, default=1,
@@ -721,7 +725,7 @@ 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' ]
+             'acpi', 'apic', 'numanodes', 'usb', 'usbdevice', 'keymap' ]
     for a in args:
         if a in vals.__dict__ and vals.__dict__[a] is not None:
             config_image.append([a, vals.__dict__[a]])
diff -r c362bcee8047 -r 0534ec5aa830 tools/python/xen/xm/xenapi_create.py
--- a/tools/python/xen/xm/xenapi_create.py      Sun Aug 12 16:09:13 2007 +0100
+++ b/tools/python/xen/xm/xenapi_create.py      Tue Aug 07 14:28:18 2007 +0200
@@ -821,7 +821,7 @@ class sxp2xml:
 
 
     def extract_platform(self, image, document):
-        platform_keys = ['acpi', 'apic', 'pae']
+        platform_keys = ['acpi', 'apic', 'pae', 'numanodes']
 
         def extract_platform_key(key):
             platform = document.createElement("platform")
diff -r c362bcee8047 -r 0534ec5aa830 xen/include/public/hvm/hvm_info_table.h
--- a/xen/include/public/hvm/hvm_info_table.h   Sun Aug 12 16:09:13 2007 +0100
+++ b/xen/include/public/hvm/hvm_info_table.h   Tue Aug 07 14:28:18 2007 +0200
@@ -36,6 +36,7 @@ struct hvm_info_table {
     uint8_t     acpi_enabled;
     uint8_t     apic_mode;
     uint32_t    nr_vcpus;
+    uint32_t    numanodes;
 };
 
 #endif /* __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__ */
_______________________________________________
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®.