qemu-e2k/hw/ppc
Alexey Kardashevskiy 606b54986d spapr_iommu: Realloc guest visible TCE table when starting/stopping listening
The sPAPR TCE tables manage 2 copies when VFIO is using an IOMMU -
a guest view of the table and a hardware TCE table. If there is no VFIO
presense in the address space, then just the guest view is used, if
this is the case, it is allocated in the KVM. However since there is no
support yet for VFIO in KVM TCE hypercalls, when we start using VFIO,
we need to move the guest view from KVM to the userspace; and we need
to do this for every IOMMU on a bus with VFIO devices.

This implements the callbacks for the sPAPR IOMMU - notify_started()
reallocated the guest view to the user space, notify_stopped() does
the opposite.

This removes explicit spapr_tce_set_need_vfio() call from PCI hotplug
path as the new callbacks do this better - they notify IOMMU at
the exact moment when the configuration is changed, and this also
includes the case of PCI hot unplug.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-07-05 10:43:02 +10:00
..
Makefile.objs spapr: Abstract CPU core device and type specific core devices 2016-06-17 16:33:48 +10:00
e500-ccsr.h
e500.c target-ppc: Eliminate redundant and incorrect function booke206_page_size_to_tlb 2016-07-01 09:57:01 +10:00
e500.h target-ppc: Eliminate redundant and incorrect function booke206_page_size_to_tlb 2016-07-01 09:57:01 +10:00
e500plat.c dma: do not depend on kvm_enabled() 2016-05-19 16:42:28 +02:00
mac.h
mac_newworld.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
mac_oldworld.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
mpc8544_guts.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mpc8544ds.c
ppc.c ppc: Initial HDEC support 2016-07-01 09:57:01 +10:00
ppc4xx_devs.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
ppc4xx_pci.c
ppc405.h
ppc405_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
ppc405_uc.c Replaced get_tick_per_sec() by NANOSECONDS_PER_SECOND 2016-03-22 22:20:17 +01:00
ppc440_bamboo.c
ppc_booke.c Replaced get_tick_per_sec() by NANOSECONDS_PER_SECOND 2016-03-22 22:20:17 +01:00
ppce500_spin.c target-ppc: Eliminate redundant and incorrect function booke206_page_size_to_tlb 2016-07-01 09:57:01 +10:00
prep.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
spapr.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
spapr_cpu_core.c spapr: Ensure thread0 of CPU core is always realized first 2016-07-05 10:43:02 +10:00
spapr_drc.c spapr_drc: Prevent detach racing against attach for CPU DR 2016-06-17 16:33:48 +10:00
spapr_events.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
spapr_hcall.c powerpc/mm: Update the WIMG check during H_ENTER 2016-06-22 11:12:17 +10:00
spapr_iommu.c spapr_iommu: Realloc guest visible TCE table when starting/stopping listening 2016-07-05 10:43:02 +10:00
spapr_pci.c spapr_iommu: Realloc guest visible TCE table when starting/stopping listening 2016-07-05 10:43:02 +10:00
spapr_pci_vfio.c hw/ppc/spapr: Silence deprecation message in qtest mode 2016-06-17 09:47:59 +10:00
spapr_rng.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
spapr_rtas.c spapr: CPU hotplug support 2016-06-17 16:33:49 +10:00
spapr_rtc.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
spapr_vio.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
trace-events trace: split out trace events for hw/ppc/ directory 2016-06-20 17:22:16 +01:00
virtex_ml507.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00