qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	patches@linaro.org
Subject: [Qemu-devel] [PATCH v2 0/6] flush TLBs for one MMUidx only, missing AArch64 TLB ops
Date: Fri, 14 Aug 2015 11:41:13 +0100	[thread overview]
Message-ID: <1439548879-1972-1-git-send-email-peter.maydell@linaro.org> (raw)

This series does three things:

(1) implement the "flush the TLB only for a specified MMU index"
functionality that we talked about when we added all the new
MMU index values for ARM for EL2 and EL3

(2) use that to restrict the AArch64 TLB maintenance operations
to only the MMU indexes they need to touch

(3) add all the missing EL2 and EL3 related TLB operations for
AArch64

I did a quick performance test by running hackbench. Measuring
suggests that performance is improved by between half and one
percent, which isn't fantastic but then I don't know how much
of hackbench's runtime is bottlenecked by TLB flushes. I would
expect that a workload that actually used EL2 and EL3 will
benefit by not having the EL2 and EL3 flushes taking out the
EL1&0 TLB too.

Disclaimer: the EL2 and EL3 parts of this code are untested
because we haven't completely implemented those for AArch64 yet.

Changes v1->v2:
 * patch 1 updated so the debug printfs will compile if enabled
 * rebased

Patches 2..6 have already been reviewed.

thanks
-- PMM


Peter Maydell (6):
  cputlb: Add functions for flushing TLB for a single MMU index
  target-arm: Move TLBI ALLE1/ALLE1IS definitions into numeric order
  target-arm: Restrict AArch64 TLB flushes to the MMU indexes they must
    touch
  target-arm: Implement missing EL2 TLBI operations
  target-arm: Implement missing EL3 TLB invalidate operations
  target-arm: Implement AArch64 TLBI operations on IPAs

 cputlb.c                |  97 ++++++++++++++
 include/exec/exec-all.h |  47 +++++++
 target-arm/helper.c     | 329 +++++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 428 insertions(+), 45 deletions(-)

-- 
1.9.1

             reply	other threads:[~2015-08-14 10:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-14 10:41 Peter Maydell [this message]
2015-08-14 10:41 ` [Qemu-devel] [PATCH v2 1/6] cputlb: Add functions for flushing TLB for a single MMU index Peter Maydell
2015-08-20  5:03   ` Edgar E. Iglesias
2015-08-14 10:41 ` [Qemu-devel] [PATCH v2 2/6] target-arm: Move TLBI ALLE1/ALLE1IS definitions into numeric order Peter Maydell
2015-08-14 10:41 ` [Qemu-devel] [PATCH v2 3/6] target-arm: Restrict AArch64 TLB flushes to the MMU indexes they must touch Peter Maydell
2015-08-14 10:41 ` [Qemu-devel] [PATCH v2 4/6] target-arm: Implement missing EL2 TLBI operations Peter Maydell
2015-08-14 10:41 ` [Qemu-devel] [PATCH v2 5/6] target-arm: Implement missing EL3 TLB invalidate operations Peter Maydell
2015-08-14 10:41 ` [Qemu-devel] [PATCH v2 6/6] target-arm: Implement AArch64 TLBI operations on IPAs 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=1439548879-1972-1-git-send-email-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=edgar.iglesias@gmail.com \
    --cc=patches@linaro.org \
    --cc=pbonzini@redhat.com \
    --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 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).