All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] target/ppc: Add support for Radix partition-scoped translation
@ 2020-03-30  9:49 Cédric Le Goater
  2020-03-30  9:49 ` [PATCH 1/7] target/ppc: Enforce that the root page directory size must be at least 5 Cédric Le Goater
                   ` (6 more replies)
  0 siblings, 7 replies; 26+ messages in thread
From: Cédric Le Goater @ 2020-03-30  9:49 UTC (permalink / raw)
  To: David Gibson
  Cc: Cédric Le Goater, qemu-ppc, Greg Kurz, Nicholas Piggin, qemu-devel

Hello,

The Radix tree translation model currently supports process-scoped
translation for the PowerNV machine (Hypervisor mode) and for the
pSeries machine (Guest mode). Guests running under an emulated
Hypervisor (PowerNV machine) require a new type of Radix translation,
called partition-scoped, which is missing today.

The Radix tree translation is a 2 steps process. The first step,
process-scoped translation, converts an effective Address to a guest
real address, and the second step, partition-scoped translation,
converts a guest real address to a host real address.

There are difference cases to covers : 

* Hypervisor real mode access: no Radix translation.

* Hypervisor or host application access (quadrant 0 and 3) with
  relocation on: process-scoped translation.

* Guest OS real mode access: only partition-scoped translation.

* Guest OS real or guest application access (quadrant 0 and 3) with
  relocation on: both process-scoped translation and partition-scoped
  translations.

* Hypervisor access in quadrant 1 and 2 with relocation on: both
  process-scoped translation and partition-scoped translations.

The radix tree partition-scoped translation is performed using tables
pointed to by the first double-word of the Partition Table Entries and
process-scoped translation uses tables pointed to by the Process Table
Entries (second double-word of the Partition Table Entries).

Both partition-scoped and process-scoped translations process are
identical and thus the radix tree traversing code is largely reused.
However, errors in partition-scoped translations generate hypervisor
exceptions.

Based on work from Suraj Jitindar Singh <sjitindarsingh@gmail.com>

Thanks,

C.

Cédric Le Goater (6):
  target/ppc: Introduce a relocation bool in  ppc_radix64_handle_mmu_fault()
  target/ppc: Assert if HV mode is set when running under a pseries machine
  target/ppc: Introduce ppc_radix64_xlate() for Radix tree translation
  target/ppc: Rework ppc_radix64_walk_tree() for partition-scoped translation
  target/ppc: Extend ppc_radix64_check_prot() with a 'partition_scoped' bool
  target/ppc: Add support for Radix partition-scoped translation

Suraj Jitindar Singh (1):
  target/ppc: Enforce that the root page directory size must be at least
    5

 target/ppc/cpu.h         |   3 +
 target/ppc/excp_helper.c |   3 +-
 target/ppc/mmu-radix64.c | 411 +++++++++++++++++++++++++++++----------
 3 files changed, 308 insertions(+), 109 deletions(-)

-- 
2.21.1



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

end of thread, other threads:[~2020-03-31  9:50 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-30  9:49 [PATCH 0/7] target/ppc: Add support for Radix partition-scoped translation Cédric Le Goater
2020-03-30  9:49 ` [PATCH 1/7] target/ppc: Enforce that the root page directory size must be at least 5 Cédric Le Goater
2020-03-30 10:45   ` Greg Kurz
2020-03-31  0:57   ` David Gibson
2020-03-30  9:49 ` [PATCH 2/7] target/ppc: Introduce a relocation bool in ppc_radix64_handle_mmu_fault() Cédric Le Goater
2020-03-30 13:01   ` Greg Kurz
2020-03-31  0:58   ` David Gibson
2020-03-30  9:49 ` [PATCH 3/7] target/ppc: Assert if HV mode is set when running under a pseries machine Cédric Le Goater
2020-03-30 10:46   ` Greg Kurz
2020-03-31  0:59   ` David Gibson
2020-03-30  9:49 ` [PATCH 4/7] target/ppc: Introduce ppc_radix64_xlate() for Radix tree translation Cédric Le Goater
2020-03-30 14:18   ` Greg Kurz
2020-03-30 15:24     ` Cédric Le Goater
2020-03-30 15:34       ` Cédric Le Goater
2020-03-30 17:07         ` Greg Kurz
2020-03-31  1:13         ` David Gibson
2020-03-31  8:15           ` Cédric Le Goater
2020-03-30  9:49 ` [PATCH 5/7] target/ppc: Rework ppc_radix64_walk_tree() for partition-scoped translation Cédric Le Goater
2020-03-30 17:00   ` Greg Kurz
2020-03-31  9:10     ` Cédric Le Goater
2020-03-31  9:49       ` Greg Kurz
2020-03-30  9:49 ` [PATCH 6/7] target/ppc: Extend ppc_radix64_check_prot() with a 'partition_scoped' bool Cédric Le Goater
2020-03-30 17:01   ` Greg Kurz
2020-03-31  8:22     ` Cédric Le Goater
2020-03-30 17:08   ` Greg Kurz
2020-03-30  9:49 ` [PATCH 7/7] target/ppc: Add support for Radix partition-scoped translation Cédric Le Goater

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.