qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 13/24] target-ppc: Enable PMU SPRs migration


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] [PATCH v3 13/24] target-ppc: Enable PMU SPRs migration
Date: Wed, 28 May 2014 14:58:50 +1000
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

On 05/27/2014 08:37 PM, Alexey Kardashevskiy wrote:
> This enabled PMU SPRs migration by hooking hypv privileged versions with
> "KVM one reg" IDs.
> 
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> ---
>  target-ppc/translate_init.c | 104 
> ++++++++++++++++++++++----------------------
>  1 file changed, 52 insertions(+), 52 deletions(-)
> 
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 21916dd..8e1b465 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -7360,50 +7360,50 @@ static void gen_spr_970_dbg(CPUPPCState *env)
>  
>  static void gen_spr_book3s_pmu(CPUPPCState *env)
>  {
> -    spr_register(env, SPR_POWER_MMCR0, "MMCR0",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_MMCR1, "MMCR1",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_MMCRA, "MMCRA",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_PMC1, "PMC1",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_PMC2, "PMC2",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_PMC3, "PMC3",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_PMC4, "PMC4",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_PMC5, "PMC5",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_PMC6, "PMC6",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_SIAR, "SIAR",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, SPR_NOACCESS,
> -                 0x00000000);
> -    spr_register(env, SPR_POWER_SDAR, "SDAR",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, SPR_NOACCESS,
> -                 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_MMCR0, "MMCR0",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_MMCR0, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_MMCR1, "MMCR1",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_MMCR1, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_MMCRA, "MMCRA",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_MMCRA, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_PMC1, "PMC1",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC1, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_PMC2, "PMC2",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC2, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_PMC3, "PMC3",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC3, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_PMC4, "PMC4",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC4, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_PMC5, "PMC5",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC5, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_PMC6, "PMC6",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC6, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_SIAR, "SIAR",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, SPR_NOACCESS,
> +                     KVM_REG_PPC_PMC5, 0x00000000);
> +    spr_register_kvm(env, SPR_POWER_SDAR, "SDAR",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, SPR_NOACCESS,
> +                     KVM_REG_PPC_PMC6, 0x00000000);


Oops. KVM_REG_PPC_PMC6 for SPR_POWER_SDAR is wrong. Fixing...


>      spr_register(env, SPR_POWER_UMMCR0, "UMMCR0",
>                   &spr_read_ureg, &spr_write_ureg,
>                   &spr_read_ureg, &spr_write_ureg,
> @@ -7452,14 +7452,14 @@ static void gen_spr_book3s_pmu(CPUPPCState *env)
>  
>  static void gen_spr_970_pmu(CPUPPCState *env)
>  {
> -    spr_register(env, SPR_970_PMC7, "PMC7",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> -    spr_register(env, SPR_970_PMC8, "PMC8",
> -                 SPR_NOACCESS, SPR_NOACCESS,
> -                 &spr_read_generic, &spr_write_generic,
> -                 0x00000000);
> +    spr_register_kvm(env, SPR_970_PMC7, "PMC7",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC7, 0x00000000);
> +    spr_register_kvm(env, SPR_970_PMC8, "PMC8",
> +                     SPR_NOACCESS, SPR_NOACCESS,
> +                     &spr_read_generic, &spr_write_generic,
> +                     KVM_REG_PPC_PMC8, 0x00000000);
>      spr_register(env, SPR_970_UPMC7, "UPMC7",
>                   &spr_read_ureg, &spr_write_ureg,
>                   &spr_read_ureg, &spr_write_ureg,
> 


-- 
Alexey



reply via email to

[Prev in Thread] Current Thread [Next in Thread]