qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: Rob Herring <robh@kernel.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Christoffer Dall <christoffer.dall@linaro.org>,
	patches@linaro.org
Subject: [Qemu-devel] [PATCH 0/2] target-arm: Implement TLB invalidate inner shareable ops properly
Date: Tue,  9 Sep 2014 16:01:21 +0100	[thread overview]
Message-ID: <1410274883-9578-1-git-send-email-peter.maydell@linaro.org> (raw)

The ARM architecture defines that the "IS" variants of TLB
maintenance operations must affect all TLBs in the Inner Shareable
domain, which for us means all CPUs. We were incorrectly implementing
these to only affect the current CPU, which meant that SMP TCG
operation was unstable (especially noticeable on v8).

These patches shove the legacy loosely-decoded wildcard TLB
op definitions back from "not-v8" to "not-v7" so we can
use the correct strict decode for v7 and v7MP (which is
where the IS ops were introduced); this then gives us a
place we can insert the correct behaviour.

Without these patches, using Ard's PSCI emulation patches
with lots of SMP CPUs tends to result in Oopses, processes
crashing with illegal instruction exceptions, etc.

Although we don't support SMP TCG in QEMU 2.1, I've
cc'd these to stable because they also affect v7.

Peter Maydell (2):
  target-arm: Push legacy wildcard TLB ops back into v6
  target-arm: Make *IS TLB maintenance ops affect all CPUs

 target-arm/helper.c | 195 +++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 140 insertions(+), 55 deletions(-)

-- 
1.9.1

             reply	other threads:[~2014-09-09 15:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-09 15:01 Peter Maydell [this message]
2014-09-09 15:01 ` [Qemu-devel] [PATCH 1/2] target-arm: Push legacy wildcard TLB ops back into v6 Peter Maydell
2014-09-09 15:01 ` [Qemu-devel] [PATCH 2/2] target-arm: Make *IS TLB maintenance ops affect all CPUs 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=1410274883-9578-1-git-send-email-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=christoffer.dall@linaro.org \
    --cc=patches@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=robh@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).