All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty.russell@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org, "Paul Brook" <paul@codesourcery.com>,
	"Andreas Färber" <afaerber@suse.de>,
	patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH 00/32] target-arm: refactor copro register implementation
Date: Tue, 08 May 2012 15:27:29 +0930	[thread overview]
Message-ID: <87y5p3b4fq.fsf@rustcorp.com.au> (raw)
In-Reply-To: <CAFEAcA-rzasqW2mVoB9QJyfj+054RQ82gFDMJUXVJb9SmheVRQ@mail.gmail.com>

(Accidentally made first reply to Peter only, fixed that now).

On Mon, 7 May 2012 13:25:07 +0100, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 7 May 2012 08:23, Rusty Russell <rusty@rustcorp.com.au> wrote:
> > OK, I reviewed the infrastructure, and it looks excellent.  A few of
> > minor quibbles, which I only mention to show that I read it :)
> >
> > 1) cptype_valid, arm_current_pl and encoded_cp_matches_type could return
> >   bool.
> >
> > 2) the access bits could be an enum type, which could be used in the
> >   few places they're handled, for a bit more explicitness.
> 
> Mmm. This kind of thing is my old-school-C heritage showing through
> :-)

Maybe :)  I was delighted by your use of a non-zero terminal value
though, so I hardly noticed.

> > 3) Perhaps an "assert(!g_hash_table_lookup(env->cp_regs, key));" before
> >   the g_hash_table_insert, to avoid overlapping entries.
> 
> Overlapping entries are deliberately permitted (and used in some
> cases). The idea is that last entry wins, so you can put in a
> "whole region behaves like this" wildcard case and override it
> with a few special cases.

I feel nervous without flag on either the overridden or overriding one,
to show it's deliberate.

> > I then skimmed your epic refactoring, and wherever I stopped it looked
> > completely sane.
> >
> > I wondered about an ARM_CP_DEPRECATED flag, which would print out a
> > nasty "email the list" message if hit.  Maybe it still won't provide
> > enough confidence to tighten emulation, though.
> 
> Mmm. Really I would like qemu to have a better logging infrastructure
> so we could classify things into "debug info/qemu bug/guest has done
> something dubious" and let the user turn the logging level up or down.
> In the absence of that I tend to just not put in tracing :-(

Seems like YA infrastructure adventure we could embark upon.  I'll add
it to the list :)

> The other thing on my todo list is that I don't think we're correctly
> handling the hashtable on cpu_delete/cpu_copy.

I don't pretend to understand the QEMU Object Model, but it seems like
you're missing a level of indirection by putting the cp_regs hash into
each CPUARMState directly.  More logically each ARMCPU would have a
pointer to its ARMCPUType, which would contain the cp_regs hash (and
maybe other things).

Cheers,
Rusty.

       reply	other threads:[~2012-05-08  5:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1334497585-867-1-git-send-email-peter.maydell@linaro.org>
     [not found] ` <CAFEAcA9tuuM6nx3qTuTh9JFfDfre0nvUKBGM_QWQjKB6ajBH0A@mail.gmail.com>
     [not found]   ` <87ehqwe9pl.fsf@rustcorp.com.au>
     [not found]     ` <CAFEAcA-rzasqW2mVoB9QJyfj+054RQ82gFDMJUXVJb9SmheVRQ@mail.gmail.com>
2012-05-08  5:57       ` Rusty Russell [this message]
2012-05-08 17:56         ` [Qemu-devel] [PATCH 00/32] target-arm: refactor copro register implementation Peter Maydell
2012-05-09 15:18         ` Peter Maydell
     [not found] ` <1334497585-867-2-git-send-email-peter.maydell@linaro.org>
2012-05-13 22:57   ` [Qemu-devel] [PATCH 01/32] target-arm: initial coprocessor register framework Andreas Färber
2012-05-14 10:34     ` Peter Maydell
2012-05-14 12:50       ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y5p3b4fq.fsf@rustcorp.com.au \
    --to=rusty.russell@linaro.org \
    --cc=afaerber@suse.de \
    --cc=patches@linaro.org \
    --cc=paul@codesourcery.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.