Bug 1389653 - libvirt No PCI buses available
Summary: libvirt No PCI buses available
Keywords:
Status: NEW
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: 2018-07-18 15:05 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:


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


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