[libvirt] [PATCH 2/2] qemu: Add support for enabling/disabling PMU

Martin Kletzander mkletzan at redhat.com
Mon Jan 12 13:24:49 UTC 2015


This is used as a boolean parameter for the '-cpu' option.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1178853

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
 src/qemu/qemu_command.c                                  | 12 +++++++++++-
 tests/qemuxml2argvdata/qemuxml2argv-pmu-feature-off.args |  5 +++++
 tests/qemuxml2argvdata/qemuxml2argv-pmu-feature.args     |  5 +++++
 tests/qemuxml2argvtest.c                                 |  3 +++
 4 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pmu-feature-off.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pmu-feature.args

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 83833ab..d12d739 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1,7 +1,7 @@
 /*
  * qemu_command.c: QEMU command generation
  *
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
  * Copyright (C) 2006 Daniel P. Berrange
  *
  * This library is free software; you can redistribute it and/or
@@ -6402,6 +6402,16 @@ qemuBuildCpuArgStr(virQEMUDriverPtr driver,
         }
     }

+    if (def->features[VIR_DOMAIN_FEATURE_PMU]) {
+        virTristateSwitch pmu = def->features[VIR_DOMAIN_FEATURE_PMU];
+        if (!have_cpu)
+            virBufferAdd(&buf, default_model, -1);
+
+        virBufferAsprintf(&buf, ",pmu=%s",
+                          virTristateSwitchTypeToString(pmu));
+        have_cpu = true;
+    }
+
     if (virBufferCheckError(&buf) < 0)
         goto cleanup;

diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pmu-feature-off.args b/tests/qemuxml2argvdata/qemuxml2argv-pmu-feature-off.args
new file mode 100644
index 0000000..4f6fe4f
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pmu-feature-off.args
@@ -0,0 +1,5 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu -S -M pc \
+-cpu qemu32,pmu=off -m 214 -smp 6 -nographic -monitor \
+unix:/tmp/test-monitor,server,nowait -boot n -usb -net none -serial none \
+-parallel none
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pmu-feature.args b/tests/qemuxml2argvdata/qemuxml2argv-pmu-feature.args
new file mode 100644
index 0000000..f28b654
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pmu-feature.args
@@ -0,0 +1,5 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu -S -M pc \
+-cpu qemu32,pmu=on -m 214 -smp 6 -nographic -monitor \
+unix:/tmp/test-monitor,server,nowait -boot n -usb -net none -serial none \
+-parallel none
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 1d0bd61..aebace9 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -698,6 +698,9 @@ mymain(void)
     DO_TEST("kvm-features", NONE);
     DO_TEST("kvm-features-off", NONE);

+    DO_TEST("pmu-feature", NONE);
+    DO_TEST("pmu-feature-off", NONE);
+
     DO_TEST("hugepages", QEMU_CAPS_MEM_PATH);
     DO_TEST_LINUX("hugepages-pages", QEMU_CAPS_MEM_PATH,
                   QEMU_CAPS_OBJECT_MEMORY_RAM,
-- 
2.2.1




More information about the libvir-list mailing list