[Pkg-xen-devel] Bug#706543: xen-hypervisor-4.1-amd64: HVM PCI Passthrough not working any more after last upgrade

Markus markus at trash-mail.com
Wed May 1 12:20:44 UTC 2013


Package: xen-hypervisor-4.1-amd64
Version: 4.1.4-3
Severity: grave
Justification: causes non-serious data loss



-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

xen-hypervisor-4.1-amd64 depends on no packages.

Versions of packages xen-hypervisor-4.1-amd64 recommends:
ii  xen-utils-4.1  4.1.4-3

Versions of packages xen-hypervisor-4.1-amd64 suggests:
pn  xen-docs-4.1  <none>

-- no debconf information

After last upgrade, its not possible any more to start Dom-Us based on HVM with PCI passthrough. Before that, it worked for months.
Here is what happens:

------
# xm create lubuntu.cfg
Using config file "/etc/xen/lubuntu.cfg".
Error: (22, 'Invalid argument')
------

This is the config file:
------
kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder = "hvm"
name = "lubuntu"
memory = "4096"
vcpus = 4
vif=[ 'bridge=xenbr0,model=e1000,mac=00:11:3e:11:11:11' ]
disk = ['file:/vm/lubuntu/lubuntu-lts.img,ioemu:hda,w']
gfx_passthru=1
pci=['00:02.0','00:1d.0','00:1b.0']

pci_power_mgmt=1
pci_msitranslate=0
acpi=1
apic=1
xen_extended_power_mgmt=0
viridian=1
kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder = "hvm"
name = "lubuntu"
memory = "4096"
vcpus = 4
vif=[ 'bridge=xenbr0,model=e1000,mac=00:11:3e:11:11:11' ]
disk = ['file:/vm/lubuntu/lubuntu-lts.img,ioemu:hda,w']
gfx_passthru=1
pci=['00:02.0','00:1d.0','00:1b.0']

pci_power_mgmt=1
pci_msitranslate=0
acpi=1
apic=1
xen_extended_power_mgmt=0
viridian=1
xen_platform_pci=1
monitor=1

shadow_memory=8
on_poweroff = 'destroy'
on_reboot = 'destroy'
on_crash = 'destroy'
---------

Of course the devices are assignable:
---------
# xm pci-list-assignable-devices
0000:00:02.0
0000:00:1b.0
0000:00:1d.0
---------

In the xend.log it says:
---------
[2013-05-01 11:10:29 4897] DEBUG (pciif:320) pci: enabling ioport 0xf000/0x40
[2013-05-01 11:10:29 4897] DEBUG (pciif:334) pci: enabling iomem 0xf7800000/0x400000 pfn 0xf7800/0x400
[2013-05-01 11:10:29 4897] DEBUG (pciif:334) pci: enabling iomem 0xe0000000/0x10000000 pfn 0xe0000/0x10000
[2013-05-01 11:10:29 4897] DEBUG (pciif:351) pci: enabling irq 16
[2013-05-01 11:10:29 4897] INFO (pciquirk:92) NO quirks found for PCI device [8086:1e26:1849:1e26]
[2013-05-01 11:10:29 4897] DEBUG (pciquirk:135) Permissive mode NOT enabled for PCI device [8086:1e26:1849:1e26]
[2013-05-01 11:10:29 4897] DEBUG (pciif:334) pci: enabling iomem 0xf7c07000/0x400 pfn 0xf7c07/0x1
[2013-05-01 11:10:29 4897] DEBUG (pciif:351) pci: enabling irq 23
[2013-05-01 11:10:29 4897] ERROR (XendDomainInfo:2927) XendDomainInfo.initDomain: exception occurred
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2914, in _initDomain
    self._createDevices()
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2395, in _createDevices
    self.pci_device_configure_boot()
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 627, in pci_device_configure_boot
    self.pci_device_configure(dev_sxp, first_dev = first)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 970, in pci_device_configure
    devid = self._createDevice('pci', existing_pci_conf)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2326, in _createDevice
    return self.getDeviceController(deviceClass).createDevice(devConfig)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/server/DevController.py", line 67, in createDevice
    self.setupDevice(config)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/server/pciif.py", line 453, in setupDevice
    self.setupOneDevice(d)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/server/pciif.py", line 353, in setupOneDevice
    allow_access = True)
Error: (22, 'Invalid argument')
[2013-05-01 11:10:29 4897] ERROR (XendDomainInfo:488) VM start failed
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 474, in start
    XendTask.log_progress(31, 60, self._initDomain)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendTask.py", line 209, in log_progress
    retval = func(*args, **kwds)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2930, in _initDomain
    raise VmError(str(exn))
VmError: (22, 'Invalid argument')
[2013-05-01 11:10:29 4897] DEBUG (XendDomainInfo:3071) XendDomainInfo.destroy: domid=3
[2013-05-01 11:10:29 4897] DEBUG (XendDomainInfo:2401) Destroying device model
[2013-05-01 11:10:30 4897] INFO (image:615) lubuntu device model terminated
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2408) Releasing devices
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/5632
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/5632
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2406) No device model
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2408) Releasing devices
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/5632
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/5632
[2013-05-01 11:10:30 4897] ERROR (XendDomainInfo:108) Domain construction failed
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 106, in create
    vm.start()
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 474, in start
    XendTask.log_progress(31, 60, self._initDomain)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendTask.py", line 209, in log_progress
    retval = func(*args, **kwds)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2930, in _initDomain
    raise VmError(str(exn))
VmError: (22, 'Invalid argument')
------------

Hardware Info:
Processor:  Intel(R) Core(TM) i5-3470T
GPU: Onboard HD2500
No secondary GPU

Debugging:
- First I thought it is GPU related, because the unbind/bind to Dom0 stopped working about 4 weeks ago.
  When I did a
  echo -n 0000:00:02.0 > /sys/bus/pci/devices/0000:00:02.0/driver/unbind
  echo "0000:00:02.0" > /sys/bus/pci/drivers/i915/bind
  I got formaly my graphics card back to dom0. This stopped working about 4 weeks ago. I only got a wired screen showing some noise.
  So I thought it is related to i915 driver and I remove the graphics passthough from the config and tried to only have the USB port passed through
- Only USB also does not work so it seems very likely to be hypervisor related.
- Then I was pointed to this issue: http://www.novell.com/support/kb/doc.php?id=7012337
  But unfortunately "iommu=no-intremap" did not help

So the last hypervisor/kernel update broke my system completely :(

Would be thankful for any hints!



More information about the Pkg-xen-devel mailing list