aboutsummaryrefslogtreecommitdiff
path: root/hw/vfio/trace-events
diff options
context:
space:
mode:
authorAlexey Kardashevskiy <aik@ozlabs.ru>2019-02-27 19:51:45 +1100
committerDavid Gibson <david@gibson.dropbear.id.au>2019-03-12 10:50:59 +1100
commit16107998761c1ce97d5c1d56a3e7092acb27d8d1 (patch)
tree9d40ef4049bcf7036fcab0e40855700438b65517 /hw/vfio/trace-events
parent377b155bde451d5ac545fbdcdfbf6ca17a4228f5 (diff)
downloadqemu-16107998761c1ce97d5c1d56a3e7092acb27d8d1.zip
qemu-16107998761c1ce97d5c1d56a3e7092acb27d8d1.tar.gz
qemu-16107998761c1ce97d5c1d56a3e7092acb27d8d1.tar.bz2
vfio/spapr: Fix indirect levels calculation
The current code assumes that we can address more bits on a PCI bus for DMA than we really can but there is no way knowing the actual limit. This makes a better guess for the number of levels and if the kernel fails to allocate that, this increases the level numbers till succeeded or reached the 64bit limit. This adds levels to the trace point. This may cause the kernel to warn about failed allocation: [65122.837458] Failed to allocate a TCE memory, level shift=28 which might happen if MAX_ORDER is not large enough as it can vary: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/Kconfig?h=v5.0-rc2#n727 Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Message-Id: <20190227085149.38596-3-aik@ozlabs.ru> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/vfio/trace-events')
-rw-r--r--hw/vfio/trace-events2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events
index ed2f333..cf1e886 100644
--- a/hw/vfio/trace-events
+++ b/hw/vfio/trace-events
@@ -129,6 +129,6 @@ vfio_prereg_listener_region_add_skip(uint64_t start, uint64_t end) "0x%"PRIx64"
vfio_prereg_listener_region_del_skip(uint64_t start, uint64_t end) "0x%"PRIx64" - 0x%"PRIx64
vfio_prereg_register(uint64_t va, uint64_t size, int ret) "va=0x%"PRIx64" size=0x%"PRIx64" ret=%d"
vfio_prereg_unregister(uint64_t va, uint64_t size, int ret) "va=0x%"PRIx64" size=0x%"PRIx64" ret=%d"
-vfio_spapr_create_window(int ps, uint64_t ws, uint64_t off) "pageshift=0x%x winsize=0x%"PRIx64" offset=0x%"PRIx64
+vfio_spapr_create_window(int ps, unsigned int levels, uint64_t ws, uint64_t off) "pageshift=0x%x levels=%u winsize=0x%"PRIx64" offset=0x%"PRIx64
vfio_spapr_remove_window(uint64_t off) "offset=0x%"PRIx64
vfio_spapr_group_attach(int groupfd, int tablefd) "Attached groupfd %d to liobn fd %d"