WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [patch] xm: Fix hot-unplug of statically-assigned devices

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [patch] xm: Fix hot-unplug of statically-assigned devices
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Thu, 23 Apr 2009 03:30:54 +1000
Cc: "Han, Weidong" <weidong.han@xxxxxxxxx>, Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>, "Zhai, Edwin" <edwin.zhai@xxxxxxxxx>, "Cui, Dexuan" <dexuan.cui@xxxxxxxxx>
Delivery-date: Wed, 22 Apr 2009 10:31:22 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
Prior to changset 19510:5c69f98c348e - 'xm, xend: Replace "vslt" with "vslot"',
both vslt and vslot were used in the xm code, often fairly arbitrarily.

However, in the dictionary that describes a pci function both vslt and vslot
were present. vslt stored the slot assigned to the function. And
vslot stored the slot the user requested for the function, or AUTO_PHP_SLOT
if no slot was requested.

With the renaming these two values got merged into a single entry.
This patch un-merges them by renaming the what was vslot to requested_vslot.

So an out of chronological order list of name changes is:

'vslot' -> 'requested_vslot'
'vslt'  -> 'vslot'

Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>

--- 

I have given this only light testing, I would appreciate it if others
could look at it.

This bug should probably be fixed for 3.4.0

This bug is in Bugzilla as Bug #1446
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1446

Index: xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/XendDomainInfo.py        
2009-04-23 02:53:43.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py     2009-04-23 
02:57:07.000000000 +1000
@@ -809,7 +809,7 @@ class XendDomainInfo:
                 existing_dev_uuid = sxp.child_value(existing_dev_info, 'uuid')
                 existing_pci_conf = self.info['devices'][existing_dev_uuid][1]
                 existing_pci_devs = existing_pci_conf['devs']
-                vslot = AUTO_PHP_SLOT_STR
+                vslot = ""
                 for x in existing_pci_devs:
                     if ( int(x['domain'], 16) == int(dev['domain'], 16) and
                          int(x['bus'], 16) == int(dev['bus'], 16) and
@@ -817,7 +817,7 @@ class XendDomainInfo:
                          int(x['func'], 16) == int(dev['func'], 16) ):
                         vslot = x['vslot']
                         break
-                if vslot == AUTO_PHP_SLOT_STR:
+                if vslot == "":
                     raise VmError("Device %04x:%02x:%02x.%01x is not connected"
                                   % (int(dev['domain'],16), int(dev['bus'],16),
                                      int(dev['slot'],16), int(dev['func'],16)))
Index: xen-unstable.hg/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/XendConfig.py    2009-04-23 
02:44:49.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xend/XendConfig.py 2009-04-23 
02:44:54.000000000 +1000
@@ -1285,7 +1285,7 @@ class XendConfig(dict):
                     dpci_record = {
                         'VM': self['uuid'],
                         'PPCI': ppci_uuid,
-                        'hotplug_slot': pci_dev.get('vslot', 0)
+                        'hotplug_slot': pci_dev.get('requested_vslot', 0)
                     }
 
                     dpci_opts = pci_dev.get('opts')
@@ -1847,7 +1847,7 @@ class XendConfig(dict):
                     dpci_record = {
                         'VM': self['uuid'],
                         'PPCI': ppci_uuid,
-                        'hotplug_slot': pci_dev.get('vslot', 0)
+                        'hotplug_slot': pci_dev.get('requested_vslot', 0)
                     }
 
                     dpci_opts = pci_dev.get('opts')
Index: xen-unstable.hg/tools/python/xen/xend/server/pciif.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/server/pciif.py  2009-04-23 
02:44:49.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xend/server/pciif.py       2009-04-23 
03:04:32.000000000 +1000
@@ -79,7 +79,7 @@ class PciController(DevController):
             bus = parse_hex(pci_config.get('bus', 0))
             slot = parse_hex(pci_config.get('slot', 0))
             func = parse_hex(pci_config.get('func', 0))            
-            vslot = parse_hex(pci_config.get('vslot', 0))
+            requested_vslot = parse_hex(pci_config.get('requested_vslot', 0))
 
             opts = pci_config.get('opts', '')
             if len(opts) > 0:
@@ -90,7 +90,7 @@ class PciController(DevController):
             back['dev-%i' % pcidevid] = "%04x:%02x:%02x.%01x" % \
                                         (domain, bus, slot, func)
             back['uuid-%i' % pcidevid] = pci_config.get('uuid', '')
-            back['vslot-%i' % pcidevid] = "%02x" % vslot
+            back['vslot-%i' % pcidevid] = "%02x" % requested_vslot
             pcidevid += 1
 
         if vslots != "":
Index: xen-unstable.hg/tools/python/xen/xm/create.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xm/create.py  2009-04-23 
02:44:49.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xm/create.py       2009-04-23 
02:44:54.000000000 +1000
@@ -710,7 +710,8 @@ def configure_pci(config_devs, vals):
             config_pci_opts.append([k, d[k]])
 
         config_pci_bdf = ['dev', ['domain', domain], ['bus', bus], \
-                          ['slot', slot], ['func', func], ['vslot', vslot]]
+                          ['slot', slot], ['func', func],
+                          ['requested_vslot', vslot]]
         map(f, d.keys())
         if len(config_pci_opts)>0:
             config_pci_bdf.append(['opts', config_pci_opts])

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

<Prev in Thread] Current Thread [Next in Thread>