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
xm_pci_list_v3.patch
Description: Binary data
xm_pci_attach_v2.patch
Description: Binary data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|