On Tue, Sep 20, 2016 at 10:33:52PM -0400, Wei Huang wrote: > This patchset adds a pmu=[on/off] option to enable/disable vPMU support > for guest VM. There are several reasons to justify this option. First, > vPMU can be problematic for cross-migration between different SoC as perf > counters are architecture-dependent. It is more flexible to have an option > to turn it on/off. Secondly this option matches the "pmu" option as > supported in libvirt. To make sure backward compatible, a PMU-related > property is added to mach-virt machine types. > > The following are testing results with this patchset. Other combinations > should have similar results: > CONFIG (qemu-system-aarch64) vPMU WARNING > -M virt-2.7,accel=kvm -cpu host YES NO > -M virt-2.7,accel=kvm -cpu host,pmu=off NO NO > -M virt-2.7,accel=kvm -cpu host,pmu=on YES NO > -M virt-2.6,accel=kvm -cpu host NO NO > -M virt-2.6,accel=kvm -cpu host,pmu=off NO NO > -M virt-2.6,accel=kvm -cpu host,pmu=on YES NO > > -M virt-2.7,accel=tcg -cpu cortex-a57 NO "No KVM"
We don't want this one above to warn. > -M virt-2.7,accel=tcg -cpu cortex-a57,pmu=off NO NO > -M virt-2.7,accel=tcg -cpu cortex-a57,pmu=on NO "No KVM" > -M virt-2.6,accel=tcg -cpu cortex-a57 NO NO > -M virt-2.6,accel=tcg -cpu cortex-a57,pmu=off NO NO > -M virt-2.6,accel=tcg -cpu cortex-a57,pmu=on NO "No KVM" > > -M virt-2.7,accel=tcg -cpu cortex-a15 NO NO > -M virt-2.7,accel=tcg -cpu cortex-a15,pmu=off NO "No PMU property" > -M virt-2.7,accel=tcg -cpu cortex-a15,pmu=on NO "No PMU property" > -M virt-2.6,accel=tcg -cpu cortex-a15 NO NO > -M virt-2.6,accel=tcg -cpu cortex-a15,pmu=off NO "No PMU property" > -M virt-2.6,accel=tcg -cpu cortex-a15,pmu=on NO "No PMU property" > > * "NO KVM" msg > warning: pmu can't be enabled without KVM acceleration > * "No PMU property" msg > can't apply global cortex-a15-arm-cpu.pmu=off: Property '.pmu' not found > > V3->V4: > * change has_pmu from Boolean to OnOffAuto to handle different cases > * "pmu" property is re-defined as DEFINE_PROP_ON_OFF_AUTO > > V2->V3: > * revise patch 1 commit msg and if-else statement (Drew) > * move property field into VirtMachineClass (Drew) > > V1->V2: > * keep the original field name as "has_pmu" > * add a warning message when PMU is turned on without KVM > * use the feature bit to check PMU availability, instead of using has_pmu > * add PMU compat support to mach-virt machine type > > RFC->V1: > * set default pmu=off > * change struct ARMCPU field name "has_pmu" ==> "has_host_pmu" > * like el3, add a new feature ARM_FEATURE_HOST_PMU > * "pmu" property becomes CPU dependent. Only cortex-a53/cortex-a57/host > running on kvm supports this option. > > Thanks, > -Wei > > Wei Huang (2): > arm64: Add an option to turn on/off vPMU support > arm: virt: add PMU property to mach-virt machine type > > hw/arm/virt-acpi-build.c | 2 +- > hw/arm/virt.c | 18 +++++++++++++++++- > target-arm/cpu.c | 23 +++++++++++++++++++++++ > target-arm/cpu.h | 5 +++-- > target-arm/cpu64.c | 2 ++ > target-arm/kvm64.c | 17 ++++++++++++++--- > 6 files changed, 60 insertions(+), 7 deletions(-) > > -- > 1.8.3.1 > >