CentOS Stream 10 ships kernel 6.12 but backports IOMMU and VFIO
API changes from upstream 6.15+. The existing compat header gates
on LINUX_VERSION_CODE alone, which selects the wrong (old) API on
CentOS because the kernel reports 6.12 while the actual signatures
are 6.15-style. This prevents the module from compiling on
RHEL-family kernels.
The compat header now defines a single PCI_SIM_HAS_615_API
predicate that checks LINUX_VERSION_CODE >= 6.15 or
RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(10, 3), and all five
feature macros alias it. Adding future distro gates is a one-line
edit.
The QEMU test scripts hardcoded qemu-system-x86_64, which does
not exist on CentOS/RHEL where the binary is
/usr/libexec/qemu-kvm. All five QEMU-related scripts now
auto-detect the binary via a QEMU_BIN environment variable with
PATH-based fallback.
The DevStack build_pci_sim() function used raw apt-get calls.
It now uses devstack's is_ubuntu/is_fedora helpers with
install_package for distro-aware package selection.
Build and test documentation is updated with CentOS/Fedora
install commands and CentOS Stream 10 as a compatibility target.
A cyborg-tempest-centos-10-stream Zuul CI job is added
to the weekly-periodic and experimental pipeline to
validate pci-sim on CentOS Stream 10.
Assisted-By: Claude Code (claude-opus-4-6)
Change-Id: I7ecae754465510be9efc55667bb5ed1d5f9a5f68
Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>