diff options
author | Rob Clark <robin.clark@oss.qualcomm.com> | 2025-06-29 13:13:24 -0700 |
---|---|---|
committer | Rob Clark <robin.clark@oss.qualcomm.com> | 2025-07-04 17:48:38 -0700 |
commit | 3bebfd53af0f7c8ea55094ba7b8b8b907024bb7b (patch) | |
tree | e2c1ce0d462cc4bcddabdcfd1a71cef764e5fcd9 /tools/perf/scripts/python/stackcollapse.py | |
parent | 8d4c21718cebf316daa36d06c7206d72e738fa16 (diff) |
drm/msm: Defer VMA unmap for fb unpins
With the conversion to drm_gpuvm, we lost the lazy VMA cleanup, which
means that fb cleanup/unpin when pageflipping to new scanout buffers
immediately unmaps the scanout buffer. This is costly (with tlbinv,
it can be 4-6ms for a 1080p scanout buffer, and more for higher
resolutions)!
To avoid this, introduce a vma_ref, which is incremented whenever
userspace has a GEM handle or dma-buf fd. When unpinning if the
vm is the kms->vm we defer tearing down the VMA until the vma_ref
drops to zero. If the buffer is still part of a flip-chain then
userspace will be holding some sort of reference to the BO, either
via a GEM handle and/or dma-buf fd. So this avoids unmapping the VMA
when there is a strong possibility that it will be needed again.
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Tested-by: Antonino Maniscalco <antomani103@gmail.com>
Reviewed-by: Antonino Maniscalco <antomani103@gmail.com>
Patchwork: https://patchwork.freedesktop.org/patch/661538/
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions