diff mbox series

[v2] drm/i915/gem: Fix gem_madvise for ttm+shmem objects

Message ID 20211108123637.929617-1-thomas.hellstrom@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915/gem: Fix gem_madvise for ttm+shmem objects | expand

Commit Message

Thomas Hellstrom Nov. 8, 2021, 12:36 p.m. UTC
Gem-TTM objects that are backed by shmem might have populated
page-vectors without having the GEM pages set. Those objects
aren't moved to the correct shrinker / purge list by gem_madvise.

For such objects, identified by having the
_SELF_MANAGED_SHRINK_LIST set, make sure they end up on the
correct list.

v2:
- Revert a change that made swapped-out objects inaccessible for
  truncating. (Matthew Auld)

Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Matthew Auld Nov. 8, 2021, 12:39 p.m. UTC | #1
On 08/11/2021 12:36, Thomas Hellström wrote:
> Gem-TTM objects that are backed by shmem might have populated
> page-vectors without having the GEM pages set. Those objects
> aren't moved to the correct shrinker / purge list by gem_madvise.
> 
> For such objects, identified by having the
> _SELF_MANAGED_SHRINK_LIST set, make sure they end up on the
> correct list.
> 
> v2:
> - Revert a change that made swapped-out objects inaccessible for
>    truncating. (Matthew Auld)
> 
> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>

> ---
>   drivers/gpu/drm/i915/i915_gem.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index d0e642c82064..527228d4da7e 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1005,7 +1005,8 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
>   			obj->ops->adjust_lru(obj);
>   	}
>   
> -	if (i915_gem_object_has_pages(obj)) {
> +	if (i915_gem_object_has_pages(obj) ||
> +	    i915_gem_object_has_self_managed_shrink_list(obj)) {
>   		unsigned long flags;
>   
>   		spin_lock_irqsave(&i915->mm.obj_lock, flags);
>
Thomas Hellstrom Nov. 8, 2021, 2:48 p.m. UTC | #2
On 11/8/21 15:44, Patchwork wrote:
> Project List - Patchwork *Patch Details*
> *Series:* 	drm/i915/gem: Fix gem_madvise for ttm+shmem objects (rev2)
> *URL:* 	https://patchwork.freedesktop.org/series/96611/
> *State:* 	failure
> *Details:* 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21533/index.html
>
>
>   CI Bug Log - changes from CI_DRM_10853_full -> Patchwork_21533_full
>
>
>     Summary
>
> *FAILURE*
>
> Serious unknown changes coming with Patchwork_21533_full absolutely 
> need to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in Patchwork_21533_full, please notify your bug team to 
> allow them
> to document this new failure mode, which will reduce false positives 
> in CI.
>
>
>     Participating hosts (11 -> 11)
>
> No changes in participating hosts
>
>
>     Possible new issues
>
> Here are the unknown changes that may have been introduced in 
> Patchwork_21533_full:
>
>
>       IGT changes
>
>
>         Possible regressions
>
>   * igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2:
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10853/shard-glk1/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21533/shard-glk6/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2.html>
>

Lakshmi, This failure is unrelated.

Thanks,

Thomas
Vudum, Lakshminarayana Nov. 8, 2021, 6:19 p.m. UTC | #3
Filed new issue and  re-reported.
https://gitlab.freedesktop.org/drm/intel/-/issues/4456
igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2 - incomplete - PM: suspend entry (deep)

Lakshmi.

From: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Sent: Monday, November 8, 2021 6:48 AM
To: intel-gfx@lists.freedesktop.org; Vudum, Lakshminarayana <lakshminarayana.vudum@intel.com>
Subject: Re: ✗ Fi.CI.IGT: failure for drm/i915/gem: Fix gem_madvise for ttm+shmem objects (rev2)



On 11/8/21 15:44, Patchwork wrote:
Patch Details
Series:

drm/i915/gem: Fix gem_madvise for ttm+shmem objects (rev2)

URL:

https://patchwork.freedesktop.org/series/96611/

State:

failure

Details:

https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21533/index.html

CI Bug Log - changes from CI_DRM_10853_full -> Patchwork_21533_full
Summary

FAILURE

Serious unknown changes coming with Patchwork_21533_full absolutely need to be
verified manually.

If you think the reported changes have nothing to do with the changes
introduced in Patchwork_21533_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.

Participating hosts (11 -> 11)

No changes in participating hosts

Possible new issues

Here are the unknown changes that may have been introduced in Patchwork_21533_full:

IGT changes
Possible regressions

  *   igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2:

     *   shard-glk: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10853/shard-glk1/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21533/shard-glk6/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2.html>



Lakshmi, This failure is unrelated.

Thanks,

Thomas
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index d0e642c82064..527228d4da7e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1005,7 +1005,8 @@  i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
 			obj->ops->adjust_lru(obj);
 	}
 
-	if (i915_gem_object_has_pages(obj)) {
+	if (i915_gem_object_has_pages(obj) ||
+	    i915_gem_object_has_self_managed_shrink_list(obj)) {
 		unsigned long flags;
 
 		spin_lock_irqsave(&i915->mm.obj_lock, flags);