From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhai, Edwin" Subject: Re: [patch v2] xm: Fix hot-unplug of statically-assigned devices Date: Thu, 23 Apr 2009 17:13:30 +0800 Message-ID: <49F0313A.40508@intel.com> References: <20090422173051.GA25800@verge.net.au> <20090423014252.GA19748@verge.net.au> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20090423014252.GA19748@verge.net.au> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Simon Horman Cc: "xen-devel@lists.xensource.com" , "Han, Weidong" , Masaki Kanno , "Cui, Dexuan" List-Id: xen-devel@lists.xenproject.org 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 > > --- > > 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