]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gt: Only kick the signal worker if there's been an update
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 8 Jul 2022 14:20:13 +0000 (16:20 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 12 Jul 2022 21:44:43 +0000 (17:44 -0400)
commit0362e4d33a3ced0d392ecd0e4337a53a0d2f7509
tree00ef3c88072355ecd73feca3085e680873610295
parenteb96b1b2cab2895a8ad3ee9a0448bbe83363b8a0
drm/i915/gt: Only kick the signal worker if there's been an update

One impact of commit 9bed1686788f ("dma-buf & drm/amdgpu: remove
dma_resv workaround") is that it stores many, many more fences. Whereas
adding an exclusive fence used to remove the shared fence list, that
list is now preserved and the write fences included into the list. Not
just a single write fence, but now a write/read fence per context. That
causes us to have to track more fences than before (albeit half of those
are redundant), and we trigger more interrupts for multi-engine
workloads.

As part of reducing the impact from handling more signaling, we observe
we only need to kick the signal worker after adding a fence iff we have
good cause to believe that there is work to be done in processing the
fence i.e. we either need to enable the interrupt or the request is
already complete but we don't know if we saw the interrupt and so need
to check signaling.

References: 9bed1686788f ("dma-buf & drm/amdgpu: remove dma_resv workaround")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Karolina Drobnik <karolina.drobnik@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/d7b953c7a4ba747c8196a164e2f8c5aef468d048.1657289332.git.karolina.drobnik@intel.com
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c