qemu/include/hw
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
..
acpi hw/arm/virt-acpi-build: Add smmuv3 node in IORT table 2018-05-04 18:52:58 +01:00
adc
arm hw/arm/armv7m: Remove unused armv7m_init() function 2018-06-15 15:23:34 +01:00
audio
block block: Remove deprecated -drive option serial 2018-06-15 14:49:44 +02:00
char serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
core
cpu
cris
display hw/display: add standalone ramfb device 2018-06-18 11:22:15 +02:00
dma hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
gpio
i2c ppc4xx_i2c: Implement directcntl register 2018-06-21 21:22:53 +10:00
i386 nvdimm: make persistence option symbolic 2018-06-11 22:19:57 +03:00
ide ide: introduce ide_transfer_start_norecurse 2018-06-08 13:36:31 -04:00
input adb: add property to disable direct reg 3 writes 2018-06-16 16:32:33 +10:00
intc arm_gicv3_kvm: kvm_dist_get/put: skip the registers banked by GICR 2018-06-08 13:15:32 +01:00
ipack
ipmi
isa superio: Don't use MAX_SERIAL_PORTS for serial port limit 2018-04-26 13:57:00 +01:00
kvm
lm32
m68k
mem nvdimm: make persistence option symbolic 2018-06-11 22:19:57 +03:00
mips
misc mos6522: expose mos6522_update_irq() through MOS6522DeviceClass 2018-06-16 16:32:33 +10:00
net ftgmac100: compute maximum frame size depending on the protocol 2018-06-08 13:15:32 +01:00
nvram
pci allocate pci id for mdpy 2018-05-23 03:14:40 +03:00
pci-bridge
pci-host uninorth: remove token register from uninorth device 2018-06-12 09:33:52 +10:00
ppc spapr: Maximum (HPT) pagesize property 2018-06-22 14:19:07 +10:00
riscv RISC-V: Make virt header comment title consistent 2018-05-06 10:39:38 +12:00
s390x s390x: refactor reset/reipl handling 2018-05-14 17:10:02 +02:00
scsi scsi-disk: allow customizing the SCSI version 2018-04-09 16:36:39 +02:00
sd sdcard: Reflect when the Spec v3 is supported in the Config Register (SCR) 2018-06-08 13:15:34 +01:00
sh4 hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
smbios
sparc
ssi
timer
tricore
unicore32
usb
vfio vfio: remove DPRINTF() definition from vfio-common.h 2018-06-05 08:23:16 -06:00
virtio acpi, vhost, misc: fixes, features 2018-06-04 10:15:16 +01:00
watchdog
xen xen-hvm: try to use xenforeignmemory_map_resource() to map ioreq pages 2018-05-31 12:04:55 -07:00
xtensa
boards.h machine: rename MemoryHotplugState to DeviceMemoryState 2018-05-07 10:00:02 -03:00
bt.h
compat.h migration: introduce decompress-error-check 2018-06-04 05:46:15 +02:00
devices.h hw: Clean "hw/devices.h" includes 2018-06-01 14:15:10 +02:00
elf_ops.h
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h
loader-fit.h
loader.h
nmi.h
or-irq.h hw/core/or-irq: Support more than 16 inputs to an OR gate 2018-06-15 15:23:34 +01:00
pcmcia.h
platform-bus.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
ptimer.h
qdev-core.h qdev: Remove DeviceClass::init() and ::exit() 2018-06-01 15:14:31 +02:00
qdev-dma.h
qdev-properties.h net: Remove the deprecated "vlan" parameter 2018-05-14 15:47:14 +08:00
qdev.h
register.h
registerfields.h
stream.h
sysbus.h
usb.h