[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Re: [PATCH] Fix xm pci-attach/detach for inactivemanaged domains
On Fri, May 15, 2009 at 04:01:30PM +0900, Masaki Kanno wrote: Content-Description: Mail message body > Hi Simon, > > Thanks for your review and test. > > >In the case of pci-attach if I follow the folliwing steps: > > > >$ xm new hvm.conf > >$ xm pci-attach hvm 00:1a.0 > >$ xm start hvm > >[ wait a bit ] > >$ xm pci-list hvm > > > >Then pci-list never indicates that 00:1a.0 has been assigned a vslot. > > Maybe, the domain start failed. > Are there the following messages in a qemu-dm-hvm.log file? > > register_real_device: Assigning real physical device 00:1a.0 ... > register_real_device: Error: no free virtual PCI slot > pt_init: Error: Registration failed (00:1a.0) > Error: Initialization failed for pass-through devices > > If so, the problem is solved by new patches. > Could you review and test the patches? Yes, I cam to the same conclusion. Though my solution was a little different. I think that the change below be an alternate solution to both of your patches. Though there is still a problem that the assigned vslot isn't reported by pci-list if a function is attached while the domain isn't running. I will review your patches once I have had some sleep. In the mean time, here is the change that have been thinking about. Index: xen-unstable.hg/tools/python/xen/xend/server/pciif.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/server/pciif.py 2009-05-16 01:40:42.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xend/server/pciif.py 2009-05-16 01:41:14.000000000 +1000 @@ -73,13 +73,15 @@ class PciController(DevController): for pci_config in config.get('devs', []): vslot = pci_config.get('vslot') if vslot is not None: - vslots = vslots + vslot + ";" + vslot = parse_hex(vslot) + vslots = "%s0x%02x;" % (vslots, vslot) + else: + vslot = parse_hex(pci_config.get('requested_vslot')) domain = parse_hex(pci_config.get('domain', 0)) bus = parse_hex(pci_config.get('bus', 0)) slot = parse_hex(pci_config.get('slot', 0)) func = parse_hex(pci_config.get('func', 0)) - requested_vslot = parse_hex(pci_config.get('requested_vslot', 0)) opts = pci_config.get('opts', '') if len(opts) > 0: @@ -90,7 +92,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" % requested_vslot + back['vslot-%i' % pcidevid] = "%02x" % vslot pcidevid += 1 if vslots != "": _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |