Bug 709471 - fails to start in Xen PV domU
Summary: fails to start in Xen PV domU
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: libvirt
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Daniel Veillard
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-31 19:00 UTC by Soren Hansen
Modified: 2011-09-08 10:48 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-09-08 10:48:14 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Soren Hansen 2011-05-31 19:00:41 UTC
Description of problem:
Xen PV domU's have no PCI bus (at least as seen on Rackspace's Cloud Servers). libvirt's src/node_device/node_device_udev.c calls pci_system_init which looks for /sys/bus/pci. If it does not find /sys/bus/pci (which it won't in a Xen PV domU) it returns unsuccesfully, which libvirt considers fatal.

It's perfectly reasonable to want to run libvirt in a paravirt Xen domU, e.g. for running LXC, QEmu or UML guests. Additionally, the PCI check is disabled on s390, and a failing check is ignored for qemu:///session, so I don't see how it can be absolutely required for qemu:///system on non-s390.

Version-Release number of selected component (if applicable):
Observed in 0.8.8 and onwards. Perhaps it appeared earlier.


How reproducible:
100%


Steps to Reproduce:
1. Fire up a Xen PV domU (e.g. on Rackspace Cloud Servers)
2. Attempt to start libvirtd as root.
3. Fail.
  
Actual results:
It fails, saying something like:
libpciaccess: No such file or directory.


Expected results:
It should start, and whatever functionality depends on pci access should simply be disabled. Since s390 gets away with this, it should be feasible.


Additional info:

Comment 1 Eric Blake 2011-09-08 10:48:14 UTC
Fix is now upstream, and will be part of libvirt 0.9.5:

commit 9c7283166f667967d9d435ba233178f07af2eee0
Author: Soren Hansen <soren>
Date:   Mon Sep 5 21:29:06 2011 +0200

    Don't treat pci_system_init failure as fatal if no PCI bus is present
    
    Xen PV domU's have no PCI bus. node_device_udev.c calls pci_system_init
    won't in a Xen PV domU) it returns unsuccesfully (ENOENT), which libvirt
    considers fatal. This makes libvirt unusable in this environment, even
    though there are plenty of valid virtualisation options that work
    there (LXC, UML, and QEmu spring to mind)


Note You need to log in before you can comment on or make changes to this bug.