[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



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?

Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>

Best regards,
 Kan


Current xen-unstable + my patches (xm_pci_attach_v2.patch + 
                                   xm_pci_list_v3.patch):
 The test results are as follows.
 
 # cat /etc/xen/vm1 | grep pci
 pci = [ '01:00.0@6' ]
 # xm new vm1
 Using config file "/etc/xen/vm1".
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x6  0x0      0x01  0x00   0x0    
 # xm pci-attach vm1 00:1a.0 8
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x6  0x0      0x01  0x00   0x0    
 0x8  0x0      0x00  0x1a   0x0    
 # xm pci-detach vm1 01:00.0
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x8  0x0      0x00  0x1a   0x0    
 # xm pci-detach vm1 00:1a.0
 # xm pci-list vm1
 # xm pci-attach vm1 01:00.0 6
 # xm pci-attach vm1 00:1a.0 8
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x6  0x0      0x01  0x00   0x0    
 0x8  0x0      0x00  0x1a   0x0   
 # xm pci-detach vm1 00:1a.0
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x6  0x0      0x01  0x00   0x0    
 # xm pci-attach vm1 00:1a.0
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x6  0x0      0x01  0x00   0x0    
 -    0x0      0x00  0x1a   0x0   
 # xm start vm1
 # xm pci-list vm1
 VSlt domain   bus   slot   func
 0x06 0x0      0x01  0x00   0x0    
 0x03 0x0      0x00  0x1a   0x0    



Current xen-unstable:
 I got the following error messages from console and xend.log.

 # xm new vm1
 Using config file "/etc/xen/vm1".
 # xm pci-list vm1
 domain   bus   slot   func
 0x0  0x01   0x00    0x0    
 # xm pci-attach vm1 00:1a.0 8
 Error: 'vslot'
 Usage: xm pci-attach [-o|--options=<opt>] <Domain> <domain:bus:slot.func> 
[virtual slot]
 
 Insert a new pass-through pci device.
 # xm pci-detach vm1 01:00.0
 Error: 'vslot'
 Usage: xm pci-detach <Domain> <domain:bus:slot.func>
 
 Remove a domain's pass-through pci device.

[2009-05-15 13:26:09 4307] DEBUG (XendDomainInfo:779) 
XendDomainInfo.pci_device_configure: [\047pci\047, [\047dev\047, 
[\047domain\047, \0470x0\047], [\047bus\047, \0470x00\047], [\047slot\047, 
\0470x1a\047], [\047func\047, \0470x0\047], [\047vslot\047, \0470x8\047]], 
[\047state\047, \047Initialising\047]]
[2009-05-15 13:26:09 4307] DEBUG (XendDomainInfo:606) 
XendDomainInfo.hvm_pci_device_create: {\047devs\047: [{\047slot\047: 
\0470x1a\047, \047domain\047: \0470x0\047, \047uuid\047: 
\04787122168-057f-dda6-a56d-1f37b8ddc466\047, \047vslot\047: \0470x8\047, 
\047bus\047: \0470x00\047, \047func\047: \0470x0\047}], \047states\047: 
[\047Initialising\047]}
[2009-05-15 13:26:09 4307] ERROR (xmlrpclib2:178) Internal error handling 
xend.domain.device_configure
Traceback (most recent call last):
  File "usr/lib64/python2.4/site-packages/xen/util/xmlrpclib2.py", line 131, in 
_marshaled_dispatch
    response = self._dispatch(method, params)
  File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in _dispatch
    return func(*params)
  File "<string>", line 1, in <lambda>
  File "usr/lib64/python2.4/site-packages/xen/xend/server/XMLRPCServer.py", 
line 55, in dispatch
    return getattr(info, fn)(*args)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 
1040, in device_configure
    return self.pci_device_configure(dev_sxp)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 
801, in pci_device_configure
    vslot = self.hvm_pci_device_create(dev_config)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 
624, in hvm_pci_device_create
    if (int(x[\047vslot\047], 16) == int(new_dev[\047vslot\047], 16) and
KeyError: \047vslot\047
[2009-05-15 13:26:39 4307] DEBUG (XendDomainInfo:779) 
XendDomainInfo.pci_device_configure: [\047pci\047, [\047dev\047, 
[\047domain\047, \0470x0\047], [\047bus\047, \0470x01\047], [\047slot\047, 
\0470x00\047], [\047func\047, \0470x0\047], [\047vslot\047, \0470x20\047]], 
[\047state\047, \047Closing\047]]
[2009-05-15 13:26:39 4307] ERROR (xmlrpclib2:178) Internal error handling 
xend.domain.device_configure
Traceback (most recent call last):
  File "usr/lib64/python2.4/site-packages/xen/util/xmlrpclib2.py", line 131, in 
_marshaled_dispatch
    response = self._dispatch(method, params)
  File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in _dispatch
    return func(*params)
  File "<string>", line 1, in <lambda>
  File "usr/lib64/python2.4/site-packages/xen/xend/server/XMLRPCServer.py", 
line 55, in dispatch
    return getattr(info, fn)(*args)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 
1040, in device_configure
    return self.pci_device_configure(dev_sxp)
  File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 
818, in pci_device_configure
    vslot = x[\047vslot\047]
KeyError: \047vslot\047


Fri, 15 May 2009 10:30:15 +1000, Simon Horman wrote:

>On Thu, May 14, 2009 at 09:59:55PM +0900, Masaki Kanno wrote:
>Content-Description: Mail message body
>> Hi,
>> 
>> Currently, xm pci-attach and xm pci-detach don't work for inactive 
>> managed domains.  This patch solves the problems.
>> 
>> # xm new vm1
>> Using config file "/etc/xen/vm1".
>> # xm pci-list vm1
>> VSlt domain   bus   slot   func
>> 0x6  0x0      0x01  0x00   0x0
>> 0x7  0x0      0x01  0x00   0x1
>> # xm pci-attach vm1 00:1a.1 8
>> Error: 'vslot'
>> Usage: xm pci-attach [-o|--options=<opt>] <Domain> <domain:bus:slot.func>
>>  [virtual slot]
>> 
>> Insert a new pass-through pci device.
>> # xm pci-detach vm1 01:00.1
>> Error: 'vslot'
>> Usage: xm pci-detach <Domain> <domain:bus:slot.func>
>> 
>> Remove a domain's pass-through pci device.
>
>Good morning Kanno-san,
>
>unfortunately this change does not seem to be correct to me.
>
>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.
>
>In the case of pci-detach, I am wondering if it makes any
>sense to detach a function from a paused domain as the guest os
>really needs to release the device for pci-detach to complete successfully.
>
>
>On an semi-related note, I am seeing an error when trying to connect
>to the console when I start a domain. I will investigate further.
>
>$ xm new hvm.conf
>$ xm start -c hvm
>/usr/lib64/xen/bin/xenconsole: invalid option -- 1
>Invalid number of arguments
>Try `/usr/lib64/xen/bin/xenconsole --help' for more information.
>
>and
>
>$ xm new hvm.conf
>$ xm start hvm
>$ sudo xm console debian
>[ after a few seconds ]
>xenconsole: Could not read tty from store: No such file or directory
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@xxxxxxxxxxxxxxxxxxx
>http://lists.xensource.com/xen-devel

Attachment: xm_pci_list_v3.patch
Description: Binary data

Attachment: xm_pci_attach_v2.patch
Description: Binary data

_______________________________________________
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®.