[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/7] target/arm/cpu: spe: Add an option to turn on/off vSPE s
From: |
Andrew Jones |
Subject: |
Re: [PATCH 3/7] target/arm/cpu: spe: Add an option to turn on/off vSPE support |
Date: |
Mon, 10 Aug 2020 12:50:56 +0200 |
On Fri, Aug 07, 2020 at 08:10:33AM +0000, Haibo Xu wrote:
> Adds a spe=[on/off] option to enable/disable vSPE support in
> guest vCPU. Note this option is only available for "-cpu host"
> with KVM mode, and default value is on.
>
> Signed-off-by: Haibo Xu <haibo.xu@linaro.org>
> ---
> target/arm/cpu.c | 28 ++++++++++++++++++++++++++++
> target/arm/cpu.h | 3 +++
> 2 files changed, 31 insertions(+)
>
> diff --git a/target/arm/cpu.c b/target/arm/cpu.c
> index 111579554f..40768b4d19 100644
> --- a/target/arm/cpu.c
> +++ b/target/arm/cpu.c
> @@ -1122,6 +1122,29 @@ static void arm_set_pmu(Object *obj, bool value, Error
> **errp)
> cpu->has_pmu = value;
> }
>
> +static bool arm_get_spe(Object *obj, Error **errp)
> +{
> + ARMCPU *cpu = ARM_CPU(obj);
> +
> + return cpu->has_spe;
> +}
> +
> +static void arm_set_spe(Object *obj, bool value, Error **errp)
> +{
> + ARMCPU *cpu = ARM_CPU(obj);
> +
> + if (value) {
> + if (kvm_enabled() && !kvm_arm_spe_supported()) {
> + error_setg(errp, "'spe' feature not supported by KVM on this
> host");
> + return;
> + }
> + set_feature(&cpu->env, ARM_FEATURE_SPE);
> + } else {
> + unset_feature(&cpu->env, ARM_FEATURE_SPE);
See below, we should be using ID register bits instead.
> + }
> + cpu->has_spe = value;
> +}
> +
> unsigned int gt_cntfrq_period_ns(ARMCPU *cpu)
> {
> /*
> @@ -1195,6 +1218,11 @@ void arm_cpu_post_init(Object *obj)
> object_property_add_bool(obj, "pmu", arm_get_pmu, arm_set_pmu);
> }
>
> + if (arm_feature(&cpu->env, ARM_FEATURE_SPE)) {
> + cpu->has_spe = true;
> + object_property_add_bool(obj, "spe", arm_get_spe, arm_set_spe);
The property should be available even when the host doesn't support the
feature. How else can one migrate from a host where the feature is
available, but disabled, to a host that doesn't support the feature?
> + }
> +
> /*
> * Allow user to turn off VFP and Neon support, but only for TCG --
> * KVM does not currently allow us to lie to the guest about its
> diff --git a/target/arm/cpu.h b/target/arm/cpu.h
> index 9e8ed423ea..fe0ac14386 100644
> --- a/target/arm/cpu.h
> +++ b/target/arm/cpu.h
> @@ -822,6 +822,8 @@ struct ARMCPU {
> bool has_el3;
> /* CPU has PMU (Performance Monitor Unit) */
> bool has_pmu;
> + /* CPU has SPE (Statistical Profiling Extension) */
> + bool has_spe;
> /* CPU has VFP */
> bool has_vfp;
> /* CPU has Neon */
> @@ -1959,6 +1961,7 @@ enum arm_features {
> ARM_FEATURE_VBAR, /* has cp15 VBAR */
> ARM_FEATURE_M_SECURITY, /* M profile Security Extension */
> ARM_FEATURE_M_MAIN, /* M profile Main Extension */
> + ARM_FEATURE_SPE, /* has SPE support */
We shouldn't need to add this feature bit. SPE should have an ID register
bit to use instead.
> };
>
> static inline int arm_feature(CPUARMState *env, int feature)
> --
> 2.17.1
>
>
Thanks,
drew
- [PATCH 5/7] target/arm/kvm: spe: Add device init and set_irq operations, (continued)
[PATCH 3/7] target/arm/cpu: spe: Add an option to turn on/off vSPE support, Haibo Xu, 2020/08/07
Re: [PATCH 3/7] target/arm/cpu: spe: Add an option to turn on/off vSPE support,
Andrew Jones <=
Re: [PATCH 3/7] target/arm/cpu: spe: Add an option to turn on/off vSPE support, Richard Henderson, 2020/08/14
[PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Haibo Xu, 2020/08/07
- Re: [PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Andrew Jones, 2020/08/10
- Re: [PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Haibo Xu, 2020/08/10
- Re: [PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Andrew Jones, 2020/08/11
- Re: [PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Haibo Xu, 2020/08/11
- Re: [PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Richard Henderson, 2020/08/14
- Re: [PATCH 7/7] target/arm/cpu: spe: Enable spe to work with host cpu, Andrew Jones, 2020/08/15
Re: [PATCH 0/7] target/arm: Add vSPE support to KVM guest, Andrew Jones, 2020/08/10