- conf: Parse hyperv features even for host-model (RHEL-151688) - qemu: Wire up new hyperv host-model mode behavior (RHEL-151688) - Introduce EXPAND_CPU_FEATURES flag for domain capabilities (RHEL-153653) - qemu: Implement VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES (RHEL-153653) - virsh: Add --expand-cpu-features option for domcapabilities (RHEL-153653) - docs: Clarify host-model description in domain capabilities (RHEL-153653) - qemu: Fix job handling when domain dies in post-copy migration (RHEL-145179) - security_apparmor: Use g_auto* in AppArmorSetSecurityHostdevLabel (RHEL-159902) - security: Cleanup hostdev label error logic (RHEL-159902) - qemu: Fix IOMMUFD and VFIO security labels (RHEL-159902) - viriommufd: Set IOMMU_OPTION_RLIMIT_MODE only when running privileged (RHEL-156803) - conf: Move and rename virStorageSourceFDTuple object (RHEL-156803) - conf: Refactor virHostdevIsPCIDevice (RHEL-156803) - hypervisor: Fix virHostdevNeedsVFIO detection (RHEL-156803) - qemu: Expand call to qemuDomainNeedsVFIO (RHEL-156803) - qemu: Update qemuDomainNeedsVFIO to ignore PCI hostdev with IOMMUFD (RHEL-156803) - src: Use virHostdevIsPCIDeviceWith* to check for IOMMUFD (RHEL-156803) - conf: Introduce domain iommufd element (RHEL-156803) - qemu: Implement iommufd (RHEL-156803) - conf: Add iommufd fdgroup support (RHEL-156803) - qemu: Implement iommufd fdgroup (RHEL-156803) - tests: Add iommufd fdgroup test (RHEL-156803) - hypervisor: Call virWaitForDevices() after detaching host devices (RHEL-156803) - qemuMigrationSrcBeginXML: Don't call 'qemuMigrationSrcBeginPhaseBlockDirtyBitmaps' with offline VM (RHEL-173433) - qemuMigrationSrcBeginPhase: Don't call 'qemuBlockNodesEnsureActive' with offline VM (RHEL-173433) - util: virGetSubIDs: do not limit file size (RHEL-174491) - cpu_conf: Introduce virCPUDefSortFeatures (RHEL-177364) - qemu_capabilities: Split virQEMUCapsFillDomainCPUCaps (RHEL-177364) - qemu: Move domain caps flags handling to virQEMUCapsFillDomainCPUHostModel (RHEL-177364) - qemu_capabilities: Always sort features in host-model CPU (RHEL-177364) - qemu_capabilities: Use g_autoptr in virQEMUCapsInitHostCPUModel (RHEL-177364) - qemu_capabilities: Split conditions in virQEMUCapsInitHostCPUModel (RHEL-177364) - qemu_capabilities: Cache expanded CPU (RHEL-177364) - domaincapstest: Test EXPAND_CPU_FEATURES flag (RHEL-177364) - util: Publish and mock virHostCPUGetMSRFromKVM (RHEL-177364) - cpu_x86: Introduce virCPUx86DataAddMSR (RHEL-177364) - cpu: Introduce virCPUUpdateFeatures (RHEL-177364) - Fix documentation of VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES (RHEL-177364) - Introduce VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag (RHEL-177364) - virsh: Add --supported-cpu-features option for domcapabilities (RHEL-177364) - domaincapstest: Test SUPPORTED_CPU_FEATURES flag (RHEL-177364) - qemu_capabilities: Fix domain capabilities on AMD CPUs (RHEL-177364) - distro: Replace old gating with tmt Resolves: RHEL-145179, RHEL-151688, RHEL-153653, RHEL-156803, RHEL-159902 Resolves: RHEL-173433, RHEL-174491, RHEL-177364
110 lines
3.0 KiB
Diff
110 lines
3.0 KiB
Diff
From 6a2bd2d2e74d8c07266558c62d3fb724e677e256 Mon Sep 17 00:00:00 2001
|
|
Message-ID: <6a2bd2d2e74d8c07266558c62d3fb724e677e256.1780571166.git.jdenemar@redhat.com>
|
|
From: Jiri Denemark <jdenemar@redhat.com>
|
|
Date: Fri, 29 May 2026 13:00:10 +0200
|
|
Subject: [PATCH] cpu_conf: Introduce virCPUDefSortFeatures
|
|
|
|
Separate the sorting code from virCPUExpandFeatures into a standalone
|
|
function.
|
|
|
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
|
|
(cherry picked from commit 0900cc4f2dca2c17e8854330d45dffa4cc7952c4)
|
|
|
|
https://redhat.atlassian.net/browse/RHEL-177364
|
|
|
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
---
|
|
src/conf/cpu_conf.c | 20 ++++++++++++++++++++
|
|
src/conf/cpu_conf.h | 3 +++
|
|
src/cpu/cpu.c | 15 +--------------
|
|
src/libvirt_private.syms | 1 +
|
|
4 files changed, 25 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
|
|
index 7aeedf64f5..f5a2004ee6 100644
|
|
--- a/src/conf/cpu_conf.c
|
|
+++ b/src/conf/cpu_conf.c
|
|
@@ -1277,3 +1277,23 @@ virCPUDefListFree(virCPUDef **cpus)
|
|
|
|
g_free(cpus);
|
|
}
|
|
+
|
|
+
|
|
+static int
|
|
+virCPUFeatureDefCompare(const void *p1,
|
|
+ const void *p2,
|
|
+ void *opaque G_GNUC_UNUSED)
|
|
+{
|
|
+ const virCPUFeatureDef *f1 = p1;
|
|
+ const virCPUFeatureDef *f2 = p2;
|
|
+
|
|
+ return strcmp(f1->name, f2->name);
|
|
+}
|
|
+
|
|
+
|
|
+void
|
|
+virCPUDefSortFeatures(virCPUDef *cpu)
|
|
+{
|
|
+ g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features),
|
|
+ virCPUFeatureDefCompare, NULL);
|
|
+}
|
|
diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h
|
|
index cfb8f1a461..0cac1a1489 100644
|
|
--- a/src/conf/cpu_conf.h
|
|
+++ b/src/conf/cpu_conf.h
|
|
@@ -280,3 +280,6 @@ virCPUDefListParse(const char **xmlCPUs,
|
|
virCPUType cpuType);
|
|
void
|
|
virCPUDefListFree(virCPUDef **cpus);
|
|
+
|
|
+void
|
|
+virCPUDefSortFeatures(virCPUDef *cpu);
|
|
diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c
|
|
index 233686485d..d81e620a1d 100644
|
|
--- a/src/cpu/cpu.c
|
|
+++ b/src/cpu/cpu.c
|
|
@@ -1125,18 +1125,6 @@ virCPUConvertLegacy(virArch arch,
|
|
}
|
|
|
|
|
|
-static int
|
|
-virCPUFeatureCompare(const void *p1,
|
|
- const void *p2,
|
|
- void *opaque G_GNUC_UNUSED)
|
|
-{
|
|
- const virCPUFeatureDef *f1 = p1;
|
|
- const virCPUFeatureDef *f2 = p2;
|
|
-
|
|
- return strcmp(f1->name, f2->name);
|
|
-}
|
|
-
|
|
-
|
|
/**
|
|
* virCPUExpandFeatures:
|
|
*
|
|
@@ -1168,8 +1156,7 @@ virCPUExpandFeatures(virArch arch,
|
|
driver->expandFeatures(cpu) < 0)
|
|
return -1;
|
|
|
|
- g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features),
|
|
- virCPUFeatureCompare, NULL);
|
|
+ virCPUDefSortFeatures(cpu);
|
|
|
|
VIR_DEBUG("nfeatures=%zu", cpu->nfeatures);
|
|
return 0;
|
|
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
index d2563e587a..1733286bad 100644
|
|
--- a/src/libvirt_private.syms
|
|
+++ b/src/libvirt_private.syms
|
|
@@ -118,6 +118,7 @@ virCPUDefNew;
|
|
virCPUDefParseXML;
|
|
virCPUDefParseXMLString;
|
|
virCPUDefRef;
|
|
+virCPUDefSortFeatures;
|
|
virCPUDefStealModel;
|
|
virCPUDefUpdateFeature;
|
|
virCPUMaxPhysAddrModeTypeFromString;
|
|
--
|
|
2.54.0
|