From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH 3/4] ppc: Use split I/D mmu modes to avoid flushes on interrupts
Date: Sun, 19 Jul 2015 22:11:30 +1000 [thread overview]
Message-ID: <1437307890.28088.108.camel@kernel.crashing.org> (raw)
In-Reply-To: <55AB9068.8050202@redhat.com>
On Sun, 2015-07-19 at 13:56 +0200, Paolo Bonzini wrote:
>
> On 19/07/2015 00:20, Benjamin Herrenschmidt wrote:
> > + * For BookE, we need in theory 8 MMU modes, which would
> > + * reduce performance, so instead, we ignore msr_hv and
> > + * will flush on HV context switches. We *could* improve
> > + * things a bit if needed by using 4 and 5 as HV and flush
> > + * only when HV mode changes AS but that complicates things
> > + * as we would need to remember which is the current AS mode
> > + * for HV for I and D and split more would be hell.
> > + *
>
> 8 MMU modes wouldn't reduce performance, only 9 would:
Ok, I assumed incorrectly that 8 was too much based on your changeset
comment:
<<
At 8k per TLB (for 64-bit host or target), 8 or more modes
make the TLBs bigger than 64k, and some RISC TCG backends do
not like that. On the affected hosts, cut the TLB size in
half---there is still a measurable speedup on PPC with the
next patch.
>>
IE, you wrote "8 or more".
I can easily fold back guest vs. HV into BookE, though we don't
generally support BookE HV mode anyway in TCG so there's no big hurry in
doing so (we need to add support for the shadow SPRs and a bunch of
other things for that to work).
Cheers,
Ben.
> #define CPU_TLB_BITS \
> MIN(8, \
> TCG_TARGET_TLB_DISPLACEMENT_BITS - CPU_TLB_ENTRY_BITS - \
> (NB_MMU_MODES <= 1 ? 0 : \
> NB_MMU_MODES <= 2 ? 1 : \
> NB_MMU_MODES <= 4 ? 2 : \
> NB_MMU_MODES <= 8 ? 3 : 4))
>
> Paolo
next prev parent reply other threads:[~2015-07-19 12:11 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-18 22:20 [Qemu-devel] [RFC PATCH 1/4] ppc: Remove MMU_MODEn_SUFFIX definitions Benjamin Herrenschmidt
2015-07-18 22:20 ` [Qemu-devel] [RFC PATCH 2/4] tlb: Add "ifetch" argument to cpu_mmu_index() Benjamin Herrenschmidt
2015-07-18 22:20 ` [Qemu-devel] [RFC PATCH 3/4] ppc: Use split I/D mmu modes to avoid flushes on interrupts Benjamin Herrenschmidt
2015-07-19 11:56 ` Paolo Bonzini
2015-07-19 12:11 ` Benjamin Herrenschmidt [this message]
2015-07-19 17:42 ` Paolo Bonzini
2015-07-19 21:51 ` Benjamin Herrenschmidt
2015-07-19 23:01 ` Aurelien Jarno
2015-07-19 23:33 ` Benjamin Herrenschmidt
2015-07-20 7:11 ` Aurelien Jarno
2015-07-20 8:12 ` Benjamin Herrenschmidt
2015-07-18 22:20 ` [Qemu-devel] [RFC PATCH 4/4] ppc: Do some batching of TCG tlb flushes Benjamin Herrenschmidt
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=1437307890.28088.108.camel@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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).