diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 91be16c504ff82539d89062ee8522f7998571f88..2d634a3a839c80b4087348ac97f0db78b476a0ae 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 @@ -6420,6 +6420,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 0000000000000000000000000000000000000000..4f6fe4fcba35e83ad158f96e830958e3fd4d1aae --- /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 0000000000000000000000000000000000000000..f28b654095e91f7edff322c98bde8093efaaeb75 --- /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 f22a93796ac60017ff8b3186850400062cf36675..d1a95c56923bdbd8b2783b10e1a8a6b57e58f1a6 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,