qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] target-arm: Implement TLB invalidate inner shareable ops properly
@ 2014-09-09 15:01 Peter Maydell
  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
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Maydell @ 2014-09-09 15:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Rob Herring, Ard Biesheuvel, Christoffer Dall, patches

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-09 15:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-09 15:01 [Qemu-devel] [PATCH 0/2] target-arm: Implement TLB invalidate inner shareable ops properly Peter Maydell
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

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).