Patch "drm/i915: Allow evicting to use the requested placement" has been added to the 6.10-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: Allow evicting to use the requested placement

to the 6.10-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-allow-evicting-to-use-the-requested-placeme.patch
and it can be found in the queue-6.10 subdirectory.

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



commit b4501ccf30b695453de5629865b64a93c77c0bbd
Author: David Gow <david@xxxxxxxxxxxx>
Date:   Sun Aug 4 17:18:47 2024 +0800

    drm/i915: Allow evicting to use the requested placement
    
    [ Upstream commit 264b5b5980061d8c6a6a30c031cdec1179fe2bae ]
    
    In commit a78a8da51b36 ("drm/ttm: replace busy placement with flags v6"),
    the old system of having a separate placement list (for placements
    which should be used without eviction) and a 'busy' placement list (for
    placements which should be attempted if eviction is required) was
    replaced with a new one where placements could be marked 'FALLBACK' (to
    be attempted if eviction is required) or 'DESIRED' (to be attempted
    first, but not if eviction is required).
    
    i915 had always included the requested placement in the list of
    'busy' placements: i.e., the placement could be used either if eviction
    is required or not. But when the new system was put in place, the
    requested (first) placement was marked 'DESIRED', so would never be used
    if eviction became necessary. While a bug in the original commit
    prevented this flag from working, when this was fixed in
    4a0e7b3c ("drm/i915: fix applying placement flag"), it caused long hangs
    on DG2 systems with small BAR.
    
    Don't mark the requested placement DESIRED (or FALLBACK), allowing it to
    be used in both situations. This matches the old behaviour, and resolves
    the hangs.
    
    Thanks to Justin Brewer for bisecting the issue.
    
    Fixes: a78a8da51b36 ("drm/ttm: replace busy placement with flags v6")
    Fixes: 4a0e7b3c3753 ("drm/i915: fix applying placement flag")
    Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11255
    Signed-off-by: David Gow <david@xxxxxxxxxxxx>
    Reviewed-by: Jonathan Cavitt <jonathan.cavitt@xxxxxxxxx>
    Reviewed-by: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx>
    Signed-off-by: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240804091851.122186-2-david@xxxxxxxxxxxx
    (cherry picked from commit 54bf0af90844fbf18f5be3272eda69198dfdb622)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index e6f177183c0fa..fb848fd8ba15a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -165,7 +165,6 @@ i915_ttm_placement_from_obj(const struct drm_i915_gem_object *obj,
 	i915_ttm_place_from_region(num_allowed ? obj->mm.placements[0] :
 				   obj->mm.region, &places[0], obj->bo_offset,
 				   obj->base.size, flags);
-	places[0].flags |= TTM_PL_FLAG_DESIRED;
 
 	/* Cache this on object? */
 	for (i = 0; i < num_allowed; ++i) {




[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