qemu/include/hw/ppc
David Gibson 2309832afd spapr: Maximum (HPT) pagesize property
The way the POWER Hash Page Table (HPT) MMU is virtualized by KVM HV means
that every page that the guest puts in the pagetables must be truly
physically contiguous, not just GPA-contiguous.  In effect this means that
an HPT guest can't use any pagesizes greater than the host page size used
to back its memory.

At present we handle this by changing what we advertise to the guest based
on the backing pagesizes.  This is pretty bad, because it means the guest
sees a different environment depending on what should be host configuration
details.

As a start on fixing this, we add a new capability parameter to the
pseries machine type which gives the maximum allowed pagesizes for an
HPT guest.  For now we just create and validate the parameter without
making it do anything.

For backwards compatibility, on older machine types we set it to the max
available page size for the host.  For the 3.0 machine type, we fix it to
16, the intention being to only allow HPT pagesizes up to 64kiB by default
in future.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
2018-06-22 14:19:07 +10:00
..
fdt.h target/ppc: Pass cpu instead of env to ppc_create_page_sizes_prop() 2018-04-27 18:05:22 +10:00
mac_dbdma.h mac_dbdma: remove DBDMA_init() function 2017-09-27 13:05:41 +10:00
openpic.h openpic: move OpenPIC state and related definitions to openpic.h 2018-03-06 13:16:29 +11:00
openpic_kvm.h openpic: move KVM-specific declarations into separate openpic_kvm.h file 2018-03-06 13:16:29 +11:00
pnv.h ppc/pnv: introduce Pnv8Chip and Pnv9Chip models 2018-06-21 21:22:53 +10:00
pnv_core.h pnv_core: Allocate cpu thread objects individually 2018-06-16 16:32:33 +10:00
pnv_lpc.h ppc/pnv: introduce a new isa_create() operation to the chip model 2018-06-21 21:22:53 +10:00
pnv_occ.h pnv: Fix build failures on some host platforms 2017-05-11 09:45:15 +10:00
pnv_psi.h ppc/pnv: Remove unused XICSState reference 2017-07-17 15:07:05 +10:00
pnv_xscom.h ppc/pnv: fix PnvChip redefinition in <hw/ppc/pnv_xscom.h> 2018-01-27 17:25:27 +11:00
ppc.h mac_newworld: add via machine option to control mac99 VIA/ADB configuration 2018-06-16 16:32:33 +10:00
ppc4xx.h trivial: Do not include pci.h if it is not necessary 2018-05-20 08:40:00 +03:00
ppc_e500.h intc/openpic: Build openpic only once 2013-07-09 21:33:02 +02:00
spapr.h spapr: Maximum (HPT) pagesize property 2018-06-22 14:19:07 +10:00
spapr_cpu_core.h spapr_cpu_core: migrate per-CPU data 2018-06-21 21:22:53 +10:00
spapr_drc.h Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
spapr_ovec.h spapr: Support ibm,dynamic-memory-v2 property 2018-04-27 18:05:23 +10:00
spapr_rtas.h tests: add RTAS command in the protocol 2016-09-23 10:29:40 +10:00
spapr_vio.h spapr: introduce a spapr_qirq() helper 2017-12-15 09:49:24 +11:00
xics.h spapr: introduce a spapr_qirq() helper 2017-12-15 09:49:24 +11:00