qemu-e2k/hw/ppc
Cédric Le Goater 981b1c6266 spapr/xive: rework the mapping the KVM memory regions
Today, the interrupt device is fully initialized at reset when the CAS
negotiation process has completed. Depending on the KVM capabilities,
the SpaprXive memory regions (ESB, TIMA) are initialized with a host
MMIO backend or a QEMU emulated backend. This results in a complex
initialization sequence partially done at realize and later at reset,
and some memory region leaks.

To simplify this sequence and to remove of the late initialization of
the emulated device which is required to be done only once, we
introduce new memory regions specific for KVM. These regions are
mapped as overlaps on top of the emulated device to make use of the
host MMIOs. Also provide proper cleanups of these regions when the
XIVE KVM device is destroyed to fix the leaks.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190614165920.12670-2-clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-07-02 09:43:58 +10:00
..
e500-ccsr.h
e500.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
e500.h
e500plat.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fdt.c
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c hw/ppc/mac_newworld: Drop useless CONFIG_KVM ifdefery 2019-07-02 09:43:58 +10:00
mac_oldworld.c hw/ppc/mac_oldworld: Drop useless CONFIG_KVM ifdefery 2019-07-02 09:43:58 +10:00
mac.h
Makefile.objs hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
mpc8544_guts.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
mpc8544ds.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
pnv_bmc.c
pnv_core.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pnv_lpc.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pnv_occ.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pnv_psi.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
pnv_xscom.c ppc/pnv: fix XSCOM MMIO base address for P9 machines with multiple chips 2019-07-02 09:43:58 +10:00
pnv.c ppc/pnv: remove xscom_base field from PnvChip 2019-07-02 09:43:58 +10:00
ppc4xx_devs.c
ppc4xx_pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
ppc405_boards.c
ppc405_uc.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ppc405.h
ppc440_bamboo.c
ppc440_pcix.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
ppc440_uc.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
ppc440.h
ppc_booke.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ppc.c ppc: Introduce kvmppc_set_reg_tb_offset() helper 2019-07-02 09:43:58 +10:00
ppce500_spin.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
prep_systemio.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
prep.c hw/ppc/prep: Drop useless CONFIG_KVM ifdefery 2019-07-02 09:43:58 +10:00
rs6000_mc.c
sam460ex.c
spapr_caps.c qemu-common: Move tcg_enabled() etc. to sysemu/tcg.h 2019-06-11 20:22:09 +02:00
spapr_cpu_core.c target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup 2019-05-29 11:39:45 +10:00
spapr_drc.c spapr: Clean up spapr_drc_populate_dt() 2019-06-12 10:41:49 +10:00
spapr_events.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_hcall.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_iommu.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_irq.c spapr/xive: rework the mapping the KVM memory regions 2019-07-02 09:43:58 +10:00
spapr_ovec.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_pci_nvlink2.c spapr: Support NVIDIA V100 GPU with NVLink2 2019-04-26 10:41:23 +10:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_pci.c spapr_pci: Unregister listeners before destroying the IOMMU address space 2019-07-02 09:43:58 +10:00
spapr_rng.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas.c target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup 2019-05-29 11:39:45 +10:00
spapr_rtc.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_vio.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr.c ppc patch queue 2019-06-12 2019-06-12 14:43:47 +01:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
virtex_ml507.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00