32bit pci domain number is not supported
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
In Progress
|
High
|
Balazs Gibizer | ||
Train |
In Progress
|
Undecided
|
Unassigned | ||
Ussuri |
Fix Released
|
Undecided
|
Unassigned | ||
Victoria |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
A device with a PCI domain number greater than 16 bits exists.
On a compute node with the device, nova-compute service fails to start.
It happened in the rocky version, but it should also happen in the commit d01972b272 on the master branch [1].
Other projects, such as libvirt, have already addressed this issue [2].
$ less /var/log/
[req-0a9e4f23-
Traceback (most recent call last):
File "/opt/nova/
rt.
File "/opt/nova/
self.
File "/opt/nova/
return f(*args, **kwargs)
File "/opt/nova/
self.
File "/opt/nova/
self.
File "/opt/nova/
dev_json)
File "/opt/nova/
if self.dev_
File "/opt/nova/
if spec.match(dev):
File "/opt/nova/
dev_
File "/opt/nova/
pci_addr_obj = PhysicalPciAddr
File "/opt/nova/
self.
File "/opt/nova/
{'property': prop, 'attr': a, 'max': maxval})
PciConfigInvali
$ lspci | tail
0000:d7:16.1 Performance counters: Intel Corporation Device 2088 (rev 07)
0000:d7:16.4 System peripheral: Intel Corporation Sky Lake-E M2PCI Registers (rev 07)
0000:d7:16.5 Performance counters: Intel Corporation Device 2088 (rev 07)
0000:d7:17.0 System peripheral: Intel Corporation Sky Lake-E M2PCI Registers (rev 07)
0000:d7:17.1 Performance counters: Intel Corporation Device 2088 (rev 07)
10000:00:00.0 PCI bridge: Intel Corporation Sky Lake-E PCI Express Root Port A (rev 07)
10000:00:01.0 PCI bridge: Intel Corporation Sky Lake-E PCI Express Root Port B (rev 07)
10000:00:02.0 PCI bridge: Intel Corporation Sky Lake-E PCI Express Root Port C (rev 07)
10000:00:03.0 PCI bridge: Intel Corporation Sky Lake-E PCI Express Root Port D (rev 07)
10000:01:00.0 Non-Volatile memory controller: Toshiba America Info Systems Device 0110 (rev 01)
[1] https:/
[2] https:/
tags: | added: compute libvirt pci |
Changed in nova: | |
assignee: | nobody → Balazs Gibizer (balazs-gibizer) |
Changed in nova: | |
status: | Confirmed → In Progress |
The libvirt fix[2] landed in libvirt 5.7.0. Do we need / do we have similar fix in qemu as well?
If both qemu and libvirt supports 32bit PCI domains then I don't see any reason why nova should reject 32bit PCI domains.
Could you please confirm that QEMU works with these 32bit PCI domains? I'm setting this bug to Incomplete until the QEMU support is confirmed.
[2] https:/ /gitlab. com/libvirt/ libvirt/ -/commit/ d19c21429fd1acf dade23c903804d6 e279d1e00e