]> git.proxmox.com Git - mirror_qemu.git/commit
target/ppc/spapr: Set LPCR:HR when using Radix mode
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 15 Feb 2019 17:00:18 +0000 (18:00 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 25 Feb 2019 22:21:25 +0000 (09:21 +1100)
commit00fd075e1894fabff10dc7cd61af9130903a23c9
tree012c2d7cbe2674fd561bf957fcd0c7e456b99d36
parent368807049344f437d467aea9af4bc8b05d5fbee2
target/ppc/spapr: Set LPCR:HR when using Radix mode

The HW relies on LPCR:HR along with the PATE to determine whether
to use Radix or Hash mode. In fact it uses LPCR:HR more commonly
than the PATE.

For us, it's also more efficient to do so, especially since unlike
the HW we do not maintain a cache of the current PATE and HV PATE
in a generic place.

Prepare the grounds for that by ensuring that LPCR:HR is set
properly on SPAPR machines.

Another option would have been to use a callback to get the PATE
but this gets messy when implementing bare metal support, it's
much simpler (and faster) to use LPCR.

Since existing migration streams may not have it, fix it up in
spapr_post_load() as well based on the pseudo-PATE entry that
we keep.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190215170029.15641-2-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr.c
hw/ppc/spapr_hcall.c
hw/ppc/spapr_rtas.c
include/hw/ppc/spapr.h
target/ppc/cpu.h
target/ppc/mmu-hash64.c