qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] Ignore writes of perf reg (cp15 with crm == 12)


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH] Ignore writes of perf reg (cp15 with crm == 12)
Date: Fri, 30 Jul 2010 23:30:04 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

On Wed, Jul 28, 2010 at 04:23:05PM +0200, Loïc Minier wrote:
>  I found out Matt Waddel has written a better looking patch, but I
>  didn't test it; reviews welcome -- attached
> 
> -- 
> Loïc Minier

Return-Path: <address@hidden>
X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-26) on pig.zood.org
X-Spam-Level: 
X-Spam-Status: No, score=-98.5 required=3.0 tests=BAYES_40,
        RATWARE_GECKO_BUILD,USER_IN_WHITELIST autolearn=disabled version=3.1.4
X-Original-To: address@hidden
Delivered-To: address@hidden
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com 
[209.85.216.172])
        by pig.zood.org (Postfix) with ESMTP id B070E4C0C6
        for <address@hidden>; Tue, 27 Jul 2010 19:22:31 +0200 (CEST)
Received: by qyk1 with SMTP id 1so2929439qyk.3
        for <address@hidden>; Tue, 27 Jul 2010 10:22:30 -0700 (PDT)
Received: by 10.224.60.211 with SMTP id q19mr7862913qah.85.1280251350380;
        Tue, 27 Jul 2010 10:22:30 -0700 (PDT)
X-Forwarded-To: address@hidden
X-Forwarded-For: address@hidden address@hidden
Delivered-To: address@hidden
Received: by 10.231.142.228 with SMTP id r36cs265184ibu;
        Tue, 27 Jul 2010 10:22:29 -0700 (PDT)
Received: by 10.216.87.209 with SMTP id y59mr9230573wee.91.1280251348423;
        Tue, 27 Jul 2010 10:22:28 -0700 (PDT)
Received: from adelie.canonical.com (adelie.canonical.com [91.189.90.139])
        by mx.google.com with ESMTP id v17si6997588weq.181.2010.07.27.10.22.27;
        Tue, 27 Jul 2010 10:22:28 -0700 (PDT)
Received-SPF: pass (google.com: best guess record for domain of address@hidden 
designates 91.189.90.139 as permitted sender) client-ip=91.189.90.139;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record 
for domain of address@hidden designates 91.189.90.139 as permitted sender) 
address@hidden
Received: from hutte.canonical.com ([91.189.90.181])
        by adelie.canonical.com with esmtp (Exim 4.69 #1 (Debian))
        id 1OdnrH-0004PW-Kf
        for <address@hidden>; Tue, 27 Jul 2010 18:22:27 +0100
Received: from 75-162-181-248.slkc.qwest.net ([75.162.181.248] 
helo=[192.168.1.102])
        by hutte.canonical.com with esmtpsa 
(TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32)
        (Exim 4.69)
        (envelope-from <address@hidden>)
        id 1OdnrH-00067z-BO
        for address@hidden; Tue, 27 Jul 2010 18:22:27 +0100
Message-ID: <address@hidden>
Date: Tue, 27 Jul 2010 11:22:12 -0600
From: Matt Waddel <address@hidden>
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.11) 
Gecko/20100711 Lightning/1.0b1 Thunderbird/3.0.6 ThunderBrowse/3.3.1
MIME-Version: 1.0
To: =?ISO-8859-1?Q?Lo=EFc_Minier?= <address@hidden>
Subject: qemu cp15 register patch
X-Enigmail-Version: 1.0.1
Content-Type: multipart/mixed;
 boundary="------------020300010903030602010303"
> 
> 

The patch needs a Signed-off-by.

> diff --git a/target-arm/cpu.h b/target-arm/cpu.h
> index 7440163..b5d8a6c 100644
> --- a/target-arm/cpu.h
> +++ b/target-arm/cpu.h
> @@ -130,6 +130,7 @@ typedef struct CPUARMState {
>          uint32_t c6_data;
>          uint32_t c9_insn; /* Cache lockdown registers.  */
>          uint32_t c9_data;
> +        uint32_t c9_pmcr_data; /* Performance Monitor Control Register */

The name looks a bit strange, c9_pmcr seems to be better.

>          uint32_t c12_vbar; /* secure/nonsecure vector base address register. 
> */
>          uint32_t c12_mvbar; /* monitor vector base address register. */
>          uint32_t c13_fcse; /* FCSE PID.  */
> diff --git a/target-arm/helper.c b/target-arm/helper.c
> index 1f5f307..2136c07 100644
> --- a/target-arm/helper.c
> +++ b/target-arm/helper.c
> @@ -1558,6 +1558,15 @@ void HELPER(set_cp15)(CPUState *env, uint32_t insn, 
> uint32_t val)
>          case 1: /* TCM memory region registers.  */
>              /* Not implemented.  */
>              goto bad_reg;
> +        case 12:
> +            switch (op2) {
> +            case 0:
> +                env->cp15.c9_pmcr_data = val;

Maybe writing a small comment that it is not fully implemented will help
for later.

> +                break;
> +            default:
> +                goto bad_reg;
> +            }
> +            break;
>          default:
>              goto bad_reg;
>          }
> @@ -1897,6 +1906,13 @@ uint32_t HELPER(get_cp15)(CPUState *env, uint32_t insn)
>                  goto bad_reg;
>              /* L2 Lockdown and Auxiliary control.  */
>              return 0;
> +        case 12:
> +            switch (op2) {
> +            case 0:
> +                return env->cp15.c9_pmcr_data;
> +            default:
> +                goto bad_reg;
> +            }
>          default:
>              goto bad_reg;
>          }
> diff --git a/target-arm/machine.c b/target-arm/machine.c
> index 8595549..026776d 100644
> --- a/target-arm/machine.c
> +++ b/target-arm/machine.c
> @@ -46,6 +46,7 @@ void cpu_save(QEMUFile *f, void *opaque)
>      qemu_put_be32(f, env->cp15.c6_data);
>      qemu_put_be32(f, env->cp15.c9_insn);
>      qemu_put_be32(f, env->cp15.c9_data);
> +    qemu_put_be32(f, env->cp15.c9_pmcr_data);
>      qemu_put_be32(f, env->cp15.c13_fcse);
>      qemu_put_be32(f, env->cp15.c13_context);
>      qemu_put_be32(f, env->cp15.c13_tls1);
> @@ -156,6 +157,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
>      env->cp15.c6_data = qemu_get_be32(f);
>      env->cp15.c9_insn = qemu_get_be32(f);
>      env->cp15.c9_data = qemu_get_be32(f);
> +    env->cp15.c9_pmcr_data = qemu_get_be32(f);
>      env->cp15.c13_fcse = qemu_get_be32(f);
>      env->cp15.c13_context = qemu_get_be32(f);
>      env->cp15.c13_tls1 = qemu_get_be32(f);
> 

Adding fields here imply a change of CPU_SAVE_VERSION.


-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net



reply via email to

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