qemu/hw
Daniel Henrique Barboza 9478956794 hw/ppc/spapr_hcall: set htab_shift after kvmppc_resize_hpt_commit
Newer kernels have a htab resize capability when adding or remove
memory. At these situations, the guest kernel might reallocate its
htab to a more suitable size based on the resulting memory.

However, we're not setting the new value back into the machine state
when a KVM guest resizes its htab. At first this doesn't seem harmful,
but when migrating or saving the guest state (via virsh managedsave,
for instance) this mismatch between the htab size of QEMU and the
kernel makes the guest hangs when trying to load its state.

Inside h_resize_hpt_commit, the hypercall that commits the hash page
resize changes, let's set spapr->htab_shift to the new value if we're
sure that kvmppc_resize_hpt_commit were successful.

While we're here, add a "not RADIX" sanity check as it is already done
in the related hypercall h_resize_hpt_prepare.

Fixes: https://github.com/open-power-host-os/qemu/issues/28
Reported-by: Satheesh Rajendran <sathnaga@linux.vnet.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2018-02-16 12:14:26 +11:00
..
9pfs Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
acpi Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
adc Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
alpha
arm raspi: Raspberry Pi 3 support 2018-02-15 18:33:46 +00:00
audio hw/audio/sb16.c: change dolog() to qemu_log_mask() 2018-02-02 08:19:47 +01:00
block virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
bt
char Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
core machine: Polish -machine xxx,help 2018-02-10 10:06:20 +03:00
cpu
cris
display memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
dma hw/dma: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:09 +01:00
gpio
hppa hw/hppa: Use qemu_log_mask instead of fprintf to stderr 2018-02-04 14:11:03 -08:00
i2c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
i386 Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
ide Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
input qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
intc hw/intc/armv7m_nvic: Fix byte-to-interrupt number conversions 2018-02-15 18:29:49 +00:00
ipack
ipmi Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
isa lpc: drop pcie host dependency 2018-02-13 18:25:48 +02:00
lm32 hw/lm32: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
m68k
mem
microblaze xlnx-zynqmp-pmu: Connect the IPI device to the PMU 2018-01-26 11:09:09 +01:00
mips Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
misc cuda: convert to trace-events 2018-02-16 12:14:26 +11:00
moxie hw/moxie: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
net * CAN bus (will be under network maintainner) 2018-02-13 18:24:08 +00:00
nios2 Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
nvram Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
openrisc hw/openrisc: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:26 +01:00
pci virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
pci-bridge virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
pci-host virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
pcmcia
ppc hw/ppc/spapr_hcall: set htab_shift after kvmppc_resize_hpt_commit 2018-02-16 12:14:26 +11:00
s390x Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
scsi virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
sd sdhci: add Spec v4.2 register definitions 2018-02-13 16:15:09 +01:00
sh4
smbios Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
sparc hw/sparc*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
sparc64 Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
ssi Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
timer Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
tpm Clean up includes 2018-02-09 05:05:11 +01:00
tricore
unicore32
usb virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
vfio virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
virtio virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
watchdog Eliminate qapi/qmp/types.h 2018-02-09 13:52:15 +01:00
xen virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
xenpv hw/xen*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
xtensa Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
Makefile.objs hw/net/can: SJA1000 chip register level emulation for QEMU 2018-02-13 11:44:13 +01:00