qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, "Alex Bennée" <alex.bennee@linaro.org>,
	rth@twiddle.net
Subject: [Qemu-devel] [RFC PATCH 0/3] target-arm: Some fixes to page and TLB handling
Date: Thu, 24 Jul 2014 16:52:52 +0100	[thread overview]
Message-ID: <1406217175-30267-1-git-send-email-alex.bennee@linaro.org> (raw)

Hi,

While doing some performance analysis on aarch64 system emulation I
noticed a fairly high utilisation of cpu_arm_exec and the related find
next TB machinery. Peter pointed it this is probably not helped by
that fact TARGET_PAGE_BITS was set to 10 (1k pages) which would imply
less chaining of TBs than we should be able to get. However enabling
TARGET_PAGE_BITS 12 managed to shake out a bunch of bugs in the TLB
handing.

With TARGET_PAGE_BITS finally set to twelve I saw a drop in the % time
taken by cpu_arm_exec from 21.68% to 17.01% in my simple hand driven
android benchmark. I think if we are ever going to improve on this
further we need to consider alternative strategies to collecting,
invalidating and chaining together Translation Blocks.

I don't think this patch set is mergable as-is because we still
include a bunch of 32 bit ARM boards in the aarch64-softmmu build
which could be using an old enough ARM that has support for 1k page
tables (and may even use them?).

However review comments are welcome as well as any wider discussion on
reducing the time spent jumping between TBs.

Regards,


Alex Bennée (3):
  target-arm: don't hardcode mask values in arm_cpu_handle_mmu_fault
  target-arm: A64: fix TLB flush instructions
  target-arm: A64: fix use 12 bit page tables for aarch64

 target-arm/cpu.h    | 13 ++++++++++---
 target-arm/helper.c | 16 ++++++++++++----
 2 files changed, 22 insertions(+), 7 deletions(-)

-- 
2.0.2

             reply	other threads:[~2014-07-24 15:52 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-24 15:52 Alex Bennée [this message]
2014-07-24 15:52 ` [Qemu-devel] [PATCH 1/3] target-arm: don't hardcode mask values in arm_cpu_handle_mmu_fault Alex Bennée
2014-07-24 16:10   ` Peter Maydell
2014-07-24 15:52 ` [Qemu-devel] [PATCH 2/3] target-arm: A64: fix TLB flush instructions Alex Bennée
2014-07-24 16:09   ` Peter Maydell
2014-07-25 10:15     ` Alex Bennée
2014-07-24 15:52 ` [Qemu-devel] [PATCH 3/3] target-arm: A64: fix use 12 bit page tables for aarch64 Alex Bennée
2014-07-24 16:12   ` Peter Maydell
2014-07-24 16:15 ` [Qemu-devel] [RFC PATCH 0/3] target-arm: Some fixes to page and TLB handling 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=1406217175-30267-1-git-send-email-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).