[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 7/7] target-arm: Call the pmccntr_sync functi
From: |
Christopher Covington |
Subject: |
Re: [Qemu-devel] [PATCH v1 7/7] target-arm: Call the pmccntr_sync function when swapping ELs |
Date: |
Tue, 24 Jun 2014 11:55:23 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 |
On 06/23/2014 09:12 PM, Alistair Francis wrote:
> Call the new pmccntr_sync() function when there is a possibility
> of swapping ELs (I.E. when there is an exception)
>
> Signed-off-by: Alistair Francis <address@hidden>
> ---
>
> target-arm/helper-a64.c | 5 +++++
> target-arm/helper.c | 7 +++++++
> target-arm/op_helper.c | 6 ++++++
> 3 files changed, 18 insertions(+), 0 deletions(-)
>
> diff --git a/target-arm/helper-a64.c b/target-arm/helper-a64.c
> index 2b4ce6a..b61174f 100644
> --- a/target-arm/helper-a64.c
> +++ b/target-arm/helper-a64.c
> @@ -446,6 +446,8 @@ void aarch64_cpu_do_interrupt(CPUState *cs)
> target_ulong addr = env->cp15.vbar_el[1];
> int i;
>
> + pmccntr_sync(env);
> +
> if (arm_current_pl(env) == 0) {
> if (env->aarch64) {
> addr += 0x400;
> @@ -484,6 +486,7 @@ void aarch64_cpu_do_interrupt(CPUState *cs)
> addr += 0x100;
> break;
> default:
> + pmccntr_sync(env);
> cpu_abort(cs, "Unhandled exception 0x%x\n", cs->exception_index);
> }
>
> @@ -511,4 +514,6 @@ void aarch64_cpu_do_interrupt(CPUState *cs)
>
> env->pc = addr;
> cs->interrupt_request |= CPU_INTERRUPT_EXITTB;
> +
> + pmccntr_sync(env);
> }
The double calls seem unwieldy. I think it could be made into a single
function call if there was access, perhaps as a second parameter or maybe as a
static variable, to both the previous and current state so the function could
tell whether there is no transition, enable->disable, or disable->enable.
Christopher
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.
Re: [Qemu-devel] [PATCH v1 0/7] target-arm: Extend PMCCNTR for ARMv8, Peter Maydell, 2014/06/26