All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch] xm: Fix hot-unplug of statically-assigned devices
@ 2009-04-22 17:30 Simon Horman
  2009-04-23  1:42 ` [patch v2] " Simon Horman
  0 siblings, 1 reply; 3+ messages in thread
From: Simon Horman @ 2009-04-22 17:30 UTC (permalink / raw)
  To: xen-devel; +Cc: Han, Weidong, Masaki Kanno, Zhai, Edwin, Cui, Dexuan

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@verge.net.au>

--- 

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])

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch v2] xm: Fix hot-unplug of statically-assigned devices
  2009-04-22 17:30 [patch] xm: Fix hot-unplug of statically-assigned devices Simon Horman
@ 2009-04-23  1:42 ` Simon Horman
  2009-04-23  9:13   ` Zhai, Edwin
  0 siblings, 1 reply; 3+ messages in thread
From: Simon Horman @ 2009-04-23  1:42 UTC (permalink / raw)
  To: xen-devel; +Cc: Han, Weidong, Masaki Kanno, Zhai, Edwin, Cui, Dexuan

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@verge.net.au>

--- 

Thu, 23 Apr 2009 03:30:54 +1000

* 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

Thu, 23 Apr 2009 11:41:36 +1000

* Removed spirous tools/python/xen/xend/XendDomainInfo.py fragments,
  these were a cosmetic change I was working on.

Index: xen-unstable.hg/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/XendConfig.py	2009-04-23 11:38:54.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xend/XendConfig.py	2009-04-23 11:38:58.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 11:38:54.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xend/server/pciif.py	2009-04-23 11:38:58.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 11:38:54.000000000 +1000
+++ xen-unstable.hg/tools/python/xen/xm/create.py	2009-04-23 11:38:58.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])

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch v2] xm: Fix hot-unplug of statically-assigned devices
  2009-04-23  1:42 ` [patch v2] " Simon Horman
@ 2009-04-23  9:13   ` Zhai, Edwin
  0 siblings, 0 replies; 3+ messages in thread
From: Zhai, Edwin @ 2009-04-23  9:13 UTC (permalink / raw)
  To: Simon Horman; +Cc: xen-devel, Han, Weidong, Masaki Kanno, Cui, Dexuan

Simon,
Thanks for your fix.
How about switching to another xenstore entry for qemu => xend 
communication?  That is, change store entry in both sync_pcidev_info and 
xenstore_write_vslots(qemu).
Does it work when specifying vslot in config file?

Thanks,
edwin


Simon Horman wrote:
> 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@verge.net.au>
>
> --- 
>
> Thu, 23 Apr 2009 03:30:54 +1000
>
> * 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
>
> Thu, 23 Apr 2009 11:41:36 +1000
>
> * Removed spirous tools/python/xen/xend/XendDomainInfo.py fragments,
>   these were a cosmetic change I was working on.
>
> Index: xen-unstable.hg/tools/python/xen/xend/XendConfig.py
> ===================================================================
> --- xen-unstable.hg.orig/tools/python/xen/xend/XendConfig.py	2009-04-23 11:38:54.000000000 +1000
> +++ xen-unstable.hg/tools/python/xen/xend/XendConfig.py	2009-04-23 11:38:58.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 11:38:54.000000000 +1000
> +++ xen-unstable.hg/tools/python/xen/xend/server/pciif.py	2009-04-23 11:38:58.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 11:38:54.000000000 +1000
> +++ xen-unstable.hg/tools/python/xen/xm/create.py	2009-04-23 11:38:58.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])
>
>   

-- 
best rgds,
edwin

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-04-23  9:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-22 17:30 [patch] xm: Fix hot-unplug of statically-assigned devices Simon Horman
2009-04-23  1:42 ` [patch v2] " Simon Horman
2009-04-23  9:13   ` Zhai, Edwin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.