Bug 1389653 - libvirt No PCI buses available
Summary: libvirt No PCI buses available
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Virtualization Tools
Classification: Community
Component: libvirt
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Libvirt Maintainers
QA Contact:
URL:
Whiteboard:
: 1389654 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-10-28 06:18 UTC by admgia
Modified: 2024-12-17 12:12 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-12-17 12:12:01 UTC
Embargoed:


Attachments (Terms of Use)

Description admgia 2016-10-28 06:18:12 UTC
Centos 7
3.10.0-327.36.1.el7.x86_64

Description of problem:
[root@host x86_64]# libvirtd -VERSION
libvirtd (libvirt) 2.4.0

When you run out error:
Oct 28 09:11:47 host journal: internal error: No PCI buses available
Oct 28 09:11:47 host journal: internal error: No PCI buses available
Oct 28 09:11:47 host journal: internal error: No PCI buses available
Oct 28 09:11:47 host journal: internal error: No PCI buses available
Oct 28 09:11:47 host journal: internal error: No PCI buses available
Oct 28 09:11:47 host journal: internal error: No PCI buses available

Comment 1 Laine Stump 2016-10-28 13:53:48 UTC
*** Bug 1389654 has been marked as a duplicate of this bug. ***

Comment 2 Laine Stump 2016-10-28 14:00:24 UTC
That error normally will show up if you are trying to assign a PCI address to a device in the configuration for a arch/machinetype that doesn't support PCI.

Can you attach the XML for the domain that you are trying to define?

Comment 4 Laine Stump 2016-10-30 21:53:55 UTC
(I made the XML private because it contained a password :-)

Although you haven't specified "arch" in your os <type> element, that *should* be filled in with the default (which matches the host's arch). In your case, arch should have been set to "x86_64", which would then cause libvirt to add a pci-root controller, so there would be PCI buses. For some reason that isn't happening.

The only thing I can think of is that possibly the machinetype "pc" is being change into something that doesn't match the function qemuDomainMachineIsI440FX() (in src/qemu/qemu_domain.c), so libvirt doesn't recognize that it has a pci-root controller.

We *might* get to the bottom of the problem if you attach the output of "virsh capabilities" so we can see what is the canonical machinetype for "pc" for /usr/libexec/qemu-kvm on your machine.

Comment 5 admgia 2016-10-31 10:51:57 UTC
[root@host ~]# virsh capabilities
<capabilities>

  <host>
    <uuid>49434d53-0200-900e-2500-0e902500622e</uuid>
    <cpu>
      <arch>x86_64</arch>
      <model>Nehalem</model>
      <vendor>Intel</vendor>
      <topology sockets='1' cores='6' threads='2'/>
      <feature name='vme'/>
      <feature name='ds'/>
      <feature name='acpi'/>
      <feature name='ss'/>
      <feature name='ht'/>
      <feature name='tm'/>
      <feature name='pbe'/>
      <feature name='dtes64'/>
      <feature name='monitor'/>
      <feature name='ds_cpl'/>
      <feature name='vmx'/>
      <feature name='smx'/>
      <feature name='est'/>
      <feature name='tm2'/>
      <feature name='xtpr'/>
      <feature name='pdcm'/>
      <feature name='pcid'/>
      <feature name='dca'/>
      <feature name='arat'/>
      <feature name='pdpe1gb'/>
      <feature name='rdtscp'/>
      <feature name='invtsc'/>
      <pages unit='KiB' size='4'/>
      <pages unit='KiB' size='2048'/>
      <pages unit='KiB' size='1048576'/>
    </cpu>
    <power_management>
      <suspend_mem/>
    </power_management>
    <migration_features>
      <live/>
      <uri_transports>
        <uri_transport>tcp</uri_transport>
        <uri_transport>rdma</uri_transport>
      </uri_transports>
    </migration_features>
    <topology>
      <cells num='2'>
        <cell id='0'>
          <memory unit='KiB'>50322520</memory>
          <pages unit='KiB' size='4'>12580630</pages>
          <pages unit='KiB' size='2048'>0</pages>
          <pages unit='KiB' size='1048576'>0</pages>
          <distances>
            <sibling id='0' value='10'/>
            <sibling id='1' value='21'/>
          </distances>
          <cpus num='12'>
            <cpu id='0' socket_id='0' core_id='0' siblings='0,12'/>
            <cpu id='1' socket_id='0' core_id='1' siblings='1,13'/>
            <cpu id='2' socket_id='0' core_id='2' siblings='2,14'/>
            <cpu id='3' socket_id='0' core_id='8' siblings='3,15'/>
            <cpu id='4' socket_id='0' core_id='9' siblings='4,16'/>
            <cpu id='5' socket_id='0' core_id='10' siblings='5,17'/>
            <cpu id='12' socket_id='0' core_id='0' siblings='0,12'/>
            <cpu id='13' socket_id='0' core_id='1' siblings='1,13'/>
            <cpu id='14' socket_id='0' core_id='2' siblings='2,14'/>
            <cpu id='15' socket_id='0' core_id='8' siblings='3,15'/>
            <cpu id='16' socket_id='0' core_id='9' siblings='4,16'/>
            <cpu id='17' socket_id='0' core_id='10' siblings='5,17'/>
          </cpus>
        </cell>
        <cell id='1'>
          <memory unit='KiB'>50331648</memory>
          <pages unit='KiB' size='4'>12582912</pages>
          <pages unit='KiB' size='2048'>0</pages>
          <pages unit='KiB' size='1048576'>0</pages>
          <distances>
            <sibling id='0' value='21'/>
            <sibling id='1' value='10'/>
          </distances>
          <cpus num='12'>
            <cpu id='6' socket_id='1' core_id='0' siblings='6,18'/>
            <cpu id='7' socket_id='1' core_id='1' siblings='7,19'/>
            <cpu id='8' socket_id='1' core_id='2' siblings='8,20'/>
            <cpu id='9' socket_id='1' core_id='8' siblings='9,21'/>
            <cpu id='10' socket_id='1' core_id='9' siblings='10,22'/>
            <cpu id='11' socket_id='1' core_id='10' siblings='11,23'/>
            <cpu id='18' socket_id='1' core_id='0' siblings='6,18'/>
            <cpu id='19' socket_id='1' core_id='1' siblings='7,19'/>
            <cpu id='20' socket_id='1' core_id='2' siblings='8,20'/>
            <cpu id='21' socket_id='1' core_id='8' siblings='9,21'/>
            <cpu id='22' socket_id='1' core_id='9' siblings='10,22'/>
            <cpu id='23' socket_id='1' core_id='10' siblings='11,23'/>
          </cpus>
        </cell>
      </cells>
    </topology>
    <secmodel>
      <model>none</model>
      <doi>0</doi>
    </secmodel>
    <secmodel>
      <model>dac</model>
      <doi>0</doi>
      <baselabel type='kvm'>+107:+107</baselabel>
      <baselabel type='qemu'>+107:+107</baselabel>
    </secmodel>
  </host>

  <guest>
    <os_type>hvm</os_type>
    <arch name='i686'>
      <wordsize>32</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
      <machine canonical='pc-i440fx-rhel7.0.0' maxCpus='240'>pc</machine>
      <machine maxCpus='240'>rhel6.0.0</machine>
      <machine maxCpus='240'>rhel6.1.0</machine>
      <machine maxCpus='240'>rhel6.2.0</machine>
      <machine maxCpus='240'>rhel6.3.0</machine>
      <machine maxCpus='240'>rhel6.4.0</machine>
      <machine maxCpus='240'>rhel6.5.0</machine>
      <machine maxCpus='240'>rhel6.6.0</machine>
      <domain type='qemu'/>
      <domain type='kvm'>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      </domain>
    </arch>
    <features>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='off' toggle='no'/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <pae/>
      <nonpae/>
    </features>
  </guest>

  <guest>
    <os_type>hvm</os_type>
    <arch name='x86_64'>
      <wordsize>64</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
      <machine canonical='pc-i440fx-rhel7.0.0' maxCpus='240'>pc</machine>
      <machine maxCpus='240'>rhel6.0.0</machine>
      <machine maxCpus='240'>rhel6.1.0</machine>
      <machine maxCpus='240'>rhel6.2.0</machine>
      <machine maxCpus='240'>rhel6.3.0</machine>
      <machine maxCpus='240'>rhel6.4.0</machine>
      <machine maxCpus='240'>rhel6.5.0</machine>
      <machine maxCpus='240'>rhel6.6.0</machine>
      <domain type='qemu'/>
      <domain type='kvm'>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      </domain>
    </arch>
    <features>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='off' toggle='no'/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
    </features>
  </guest>

</capabilities>

Comment 6 Danach 2017-11-28 05:38:24 UTC
qemu-kvm

Comment 7 Daniel Berrangé 2024-12-17 12:12:01 UTC
Thank you for reporting this issue to the libvirt project. Unfortunately we have been unable to resolve this issue due to insufficient maintainer capacity and it will now be closed. This is not a reflection on the possible validity of the issue, merely the lack of resources to investigate and address it, for which we apologise. If you none the less feel the issue is still important, you may choose to report it again at the new project issue tracker https://gitlab.com/libvirt/libvirt/-/issues The project also welcomes contribution from anyone who believes they can provide a solution.


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