From: David Gibson <david@gibson.dropbear.id.au>
To: benh@kernel.crashing.org
Cc: aik@ozlabs.ru, agraf@suse.de, qemu-devel@nongnu.org,
av1474@comtv.ru, qemu-ppc@nongnu.org,
David Gibson <david@gibson.dropbear.id.au>
Subject: [Qemu-devel] [RFC 0/9] Clean up page size handling for ppc 64-bit hash MMUs with TCG
Date: Fri, 15 Jan 2016 18:04:31 +1100 [thread overview]
Message-ID: <1452841480-13325-1-git-send-email-david@gibson.dropbear.id.au> (raw)
Encoding of page sizes on 64-bit hash MMUs for Power is rather arcane,
involving control bits in both the SLB and HPTE. At present we
support a few of the options, but far fewer than real hardware.
We're able to get away with that in practice, because guests use a
device tree property to determine which page sizes are available and
we are setting that to match. However, the fact that the actual code
doesn't necessarily what we put into the table of available page sizes
is another ugliness.
This series makes a number of cleanups to the page size handling. The
upshot is that afterwards the softmmu code operates off the same page
size encoding table that is advertised to the guests, ensuring that
they will be in sync.
Finally, we extend the table of allowed sizes for POWER7 and POWER8 to
include the options allowed in hardware (including MPSS). We can fix
other hash MMU based CPUs in future if anyone cares enough.
Once reviewed, I plan to include this in my ppc-for-2.6 tree.
David Gibson (9):
target-ppc: Remove unused kvmppc_read_segment_page_sizes() stub
target-ppc: Convert mmu-hash{32,64}.[ch] from CPUPPCState to
PowerPCCPU
target-ppc: Rework SLB page size lookup
target-ppc: Use actual page size encodings from HPTE
target-ppc: Remove unused mmu models from ppc_tlb_invalidate_one
target-ppc: Split 44x tlbiva from ppc_tlb_invalidate_one()
target-ppc: Add new TLB invalidate by HPTE call for hash64 MMUs
target-ppc: Helper to determine page size information from hpte alone
target-ppc: Allow more page sizes for POWER7 & POWER8 in TCG
hw/ppc/spapr_hcall.c | 102 ++++------------
target-ppc/helper.h | 1 +
target-ppc/kvm.c | 2 +-
target-ppc/kvm_ppc.h | 5 -
target-ppc/mmu-hash32.c | 68 ++++++-----
target-ppc/mmu-hash32.h | 30 ++---
target-ppc/mmu-hash64.c | 280 +++++++++++++++++++++++++++++++++-----------
target-ppc/mmu-hash64.h | 29 +++--
target-ppc/mmu_helper.c | 47 +++-----
target-ppc/translate.c | 2 +-
target-ppc/translate_init.c | 32 +++++
11 files changed, 364 insertions(+), 234 deletions(-)
--
2.5.0
next reply other threads:[~2016-01-15 7:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-15 7:04 David Gibson [this message]
2016-01-15 7:04 ` [Qemu-devel] [RFC 1/9] target-ppc: Remove unused kvmppc_read_segment_page_sizes() stub David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 2/9] target-ppc: Convert mmu-hash{32, 64}.[ch] from CPUPPCState to PowerPCCPU David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 3/9] target-ppc: Rework SLB page size lookup David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 4/9] target-ppc: Use actual page size encodings from HPTE David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 5/9] target-ppc: Remove unused mmu models from ppc_tlb_invalidate_one David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 6/9] target-ppc: Split 44x tlbiva from ppc_tlb_invalidate_one() David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 7/9] target-ppc: Add new TLB invalidate by HPTE call for hash64 MMUs David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 8/9] target-ppc: Helper to determine page size information from hpte alone David Gibson
2016-01-15 7:04 ` [Qemu-devel] [RFC 9/9] target-ppc: Allow more page sizes for POWER7 & POWER8 in TCG David Gibson
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=1452841480-13325-1-git-send-email-david@gibson.dropbear.id.au \
--to=david@gibson.dropbear.id.au \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=av1474@comtv.ru \
--cc=benh@kernel.crashing.org \
--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).