Patch "drm/i915/gt: Only kick the signal worker if there's been an update" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/i915/gt: Only kick the signal worker if there's been an update

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-i915-gt-only-kick-the-signal-worker-if-there-s-b.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 6c0472cc86b51587403a366162fd724367ba39cc
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date:   Fri Jul 8 16:20:13 2022 +0200

    drm/i915/gt: Only kick the signal worker if there's been an update
    
    [ Upstream commit c877bed82e1017c102c137d432933ccbba92c119 ]
    
    One impact of commit 047a1b877ed4 ("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: 047a1b877ed4 ("dma-buf & drm/amdgpu: remove dma_resv workaround")
    Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
    Signed-off-by: Karolina Drobnik <karolina.drobnik@xxxxxxxxx>
    Reviewed-by: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx>
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/d7b953c7a4ba747c8196a164e2f8c5aef468d048.1657289332.git.karolina.drobnik@xxxxxxxxx
    Stable-dep-of: 70cb9188ffc7 ("drm/i915/gt: Disarm breadcrumbs if engines are already idle")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
index 209cf265bf746..e8cd7effea2b0 100644
--- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
@@ -398,7 +398,8 @@ static void insert_breadcrumb(struct i915_request *rq)
 	 * the request as it may have completed and raised the interrupt as
 	 * we were attaching it into the lists.
 	 */
-	irq_work_queue(&b->irq_work);
+	if (!b->irq_armed || __i915_request_is_complete(rq))
+		irq_work_queue(&b->irq_work);
 }
 
 bool i915_request_enable_breadcrumb(struct i915_request *rq)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux