All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: "Sergey Fedorov" <serge.fdrv@gmail.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Greg Bellows" <greg.bellows@linaro.org>
Subject: Re: [Qemu-devel] [PATCH v2 0/9] target-arm: EL3 trap support
Date: Thu, 23 Apr 2015 09:06:09 +0100	[thread overview]
Message-ID: <CAFEAcA-HRt_MJvJyziS+f0nCJ8QvwUc1iHPzn5D7ViD_5qM73w@mail.gmail.com> (raw)
In-Reply-To: <20150423033737.GD17116@toto>

On 23 April 2015 at 04:37, Edgar E. Iglesias <edgar.iglesias@gmail.com> wrote:
> On Wed, Apr 22, 2015 at 12:09:12PM -0500, Greg Bellows wrote:
>> Initial patchset adding support for trapping to an EL other than EL1.  Support
>> includes changes to interfaces to allow specification of the target EL.  Also
>> includes the addition of the ARMv8 CPTR system registers used for controlling
>> the trapping of features.
>
> Hi Greg,
>
> I'm not sure I see the value with the target_el member, it felt OK
> to call the route function from the do_interrupt functions but I may
> be missing something.

The problem is that for some exceptions (particularly the ones which are
"some trap bit means an insn causes a trap to EL2 or EL3") you can't
determine the target-el after the fact: all you have is "EXCP_UDEF"
and you don't know which of the various possible trappable insns it
was, so you don't know whether to take it to EL1, EL2 or EL3.
There were two solutions to this that we tossed around:
 (1) this one, where you determine the target EL for the trap at
     translate time (by encoding the trap bits into the TB flags,
     or at least the target EL for each kind of trap)
 (2) an approach which splits EXCP_UDEF up into effectively one
     exception type for each case of trappable instructions, and
     then check the trap bits at runtime to figure out the routing

Once you've decided on approach (1) you might as well use the new
exception.target_el member to avoid repeating the routing calculations
for IRQ, FIQ etc.

-- PMM

  reply	other threads:[~2015-04-23  8:06 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-22 17:09 [Qemu-devel] [PATCH v2 0/9] target-arm: EL3 trap support Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 1/9] target-arm: Add exception target el infrastructure Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 2/9] target-arm: Extend helpers to route exceptions Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 3/9] target-arm: Update interrupt handling to use target EL Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 4/9] target-arm: Add AArch64 CPTR registers Greg Bellows
2015-05-18 17:32   ` Peter Maydell
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 5/9] target-arm: Extend FP checks to use an EL Greg Bellows
2015-05-18 17:40   ` Peter Maydell
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 6/9] target-arm: Add TTBR regime function and use Greg Bellows
2015-04-22 18:16   ` Sergey Fedorov
2015-04-22 18:23     ` Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 7/9] target-arm: Add EL3 and EL2 TCR checking Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 8/9] target-arm: Add WFx syndrome function Greg Bellows
2015-04-22 17:09 ` [Qemu-devel] [PATCH v2 9/9] target-arm: Add WFx instruction trap support Greg Bellows
2015-04-23  2:49   ` Edgar E. Iglesias
2015-04-23  7:59     ` Peter Maydell
2015-04-23 10:39       ` Edgar E. Iglesias
2015-04-23 10:57         ` Peter Maydell
2015-04-23 11:24           ` Edgar E. Iglesias
2015-04-23 11:28             ` Peter Maydell
2015-04-23 11:34               ` Edgar E. Iglesias
2015-04-23 14:26                 ` Greg Bellows
2015-04-23 14:30                   ` Peter Maydell
2015-04-23 14:41                     ` Greg Bellows
2015-04-23 14:51                       ` Peter Maydell
2015-04-23 15:00                         ` Greg Bellows
2015-04-23 15:11                           ` Peter Maydell
2015-04-23  3:37 ` [Qemu-devel] [PATCH v2 0/9] target-arm: EL3 " Edgar E. Iglesias
2015-04-23  8:06   ` Peter Maydell [this message]
2015-04-23 10:10   ` Peter Maydell
2015-04-23 10:27     ` Edgar E. Iglesias
2015-04-23 14:05     ` Greg Bellows
2015-05-18 17:53 ` 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=CAFEAcA-HRt_MJvJyziS+f0nCJ8QvwUc1iHPzn5D7ViD_5qM73w@mail.gmail.com \
    --to=peter.maydell@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=edgar.iglesias@gmail.com \
    --cc=greg.bellows@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=serge.fdrv@gmail.com \
    /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.