diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index abf02a9b174fae672a50fd5412d16e2e0f17fbe7..ab0ea8ec0d9242ced829264889adf276babf12a7 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -456,6 +456,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
/* 280 */
"pl011",
+ "machine.pseries.max-cpu-compat",
);
@@ -4859,6 +4860,12 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
if (qemuCaps->version >= 2010000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NUMA_DIST);
+ /* no way to query max-cpu-compat */
+ if (qemuCaps->version >= 2010000 &&
+ ARCH_IS_PPC64(qemuCaps->arch)) {
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_MAX_CPU_COMPAT);
+ }
+
if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
goto cleanup;
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8bb0b6a2327e8d766eba61f94a0eadc371b8ce7e..3dfc77f8725cf58eaba8a82664f64c116a9ff485 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -442,6 +442,7 @@ typedef enum {
/* 280 */
QEMU_CAPS_DEVICE_PL011, /* -device pl011 (not user-instantiable) */
+ QEMU_CAPS_MACHINE_PSERIES_MAX_CPU_COMPAT, /* -machine pseries,max-cpu-compat= */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index c866ce3ee8e473572e8b30267cc08b2b81c06c18..7ca5234bb75426cf9d5b7c5ad6f909b9abb9afe0 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -183,6 +183,7 @@
+
2010000
0
383421