* [PATCH 1/2] drm/i915: remove writeback hook
@ 2021-12-15 11:07 ` Matthew Auld
0 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2021-12-15 11:07 UTC (permalink / raw)
To: intel-gfx; +Cc: Tvrtko Ursulin, dri-devel
Ditch the writeback hook and drop i915_gem_object_writeback(). We
already support the shrinker_release_pages hook which can just call
shmem_writeback directly.
Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_object.h | 1 -
.../gpu/drm/i915/gem/i915_gem_object_types.h | 1 -
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 10 ----------
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 19 ++++++++++++++++++-
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 12 ------------
5 files changed, 18 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
index 66f20b803b01..aaf9183e601b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -455,7 +455,6 @@ i915_gem_object_unpin_pages(struct drm_i915_gem_object *obj)
int __i915_gem_object_put_pages(struct drm_i915_gem_object *obj);
int i915_gem_object_truncate(struct drm_i915_gem_object *obj);
-void i915_gem_object_writeback(struct drm_i915_gem_object *obj);
/**
* i915_gem_object_pin_map - return a contiguous mapping of the entire object
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index f9f7e44099fe..00c844caeabd 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -57,7 +57,6 @@ struct drm_i915_gem_object_ops {
void (*put_pages)(struct drm_i915_gem_object *obj,
struct sg_table *pages);
int (*truncate)(struct drm_i915_gem_object *obj);
- void (*writeback)(struct drm_i915_gem_object *obj);
int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
bool no_gpu_wait,
bool should_writeback);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index 89b70f5cde7a..820eee5e954e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -168,16 +168,6 @@ int i915_gem_object_truncate(struct drm_i915_gem_object *obj)
return 0;
}
-/* Try to discard unwanted pages */
-void i915_gem_object_writeback(struct drm_i915_gem_object *obj)
-{
- assert_object_held_shared(obj);
- GEM_BUG_ON(i915_gem_object_has_pages(obj));
-
- if (obj->ops->writeback)
- obj->ops->writeback(obj);
-}
-
static void __i915_gem_object_reset_page_iter(struct drm_i915_gem_object *obj)
{
struct radix_tree_iter iter;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index cc9fe258fba7..7fdf4fa10b0e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -331,6 +331,23 @@ shmem_writeback(struct drm_i915_gem_object *obj)
__shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
}
+static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
+ bool no_gpu_wait,
+ bool writeback)
+{
+ switch (obj->mm.madv) {
+ case I915_MADV_DONTNEED:
+ return i915_gem_object_truncate(obj);
+ case __I915_MADV_PURGED:
+ return 0;
+ }
+
+ if (writeback)
+ shmem_writeback(obj);
+
+ return 0;
+}
+
void
__i915_gem_object_release_shmem(struct drm_i915_gem_object *obj,
struct sg_table *pages,
@@ -503,7 +520,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = {
.get_pages = shmem_get_pages,
.put_pages = shmem_put_pages,
.truncate = shmem_truncate,
- .writeback = shmem_writeback,
+ .shrinker_release_pages = shmem_shrinker_release_pages,
.pwrite = shmem_pwrite,
.pread = shmem_pread,
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index 157a9765f483..fd54e05521f6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -61,18 +61,6 @@ static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
return obj->ops->shrinker_release_pages(obj,
!(flags & I915_SHRINK_ACTIVE),
flags & I915_SHRINK_WRITEBACK);
-
- switch (obj->mm.madv) {
- case I915_MADV_DONTNEED:
- i915_gem_object_truncate(obj);
- return 0;
- case __I915_MADV_PURGED:
- return 0;
- }
-
- if (flags & I915_SHRINK_WRITEBACK)
- i915_gem_object_writeback(obj);
-
return 0;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915: remove writeback hook
@ 2021-12-15 11:07 ` Matthew Auld
0 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2021-12-15 11:07 UTC (permalink / raw)
To: intel-gfx; +Cc: dri-devel
Ditch the writeback hook and drop i915_gem_object_writeback(). We
already support the shrinker_release_pages hook which can just call
shmem_writeback directly.
Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_object.h | 1 -
.../gpu/drm/i915/gem/i915_gem_object_types.h | 1 -
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 10 ----------
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 19 ++++++++++++++++++-
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 12 ------------
5 files changed, 18 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
index 66f20b803b01..aaf9183e601b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -455,7 +455,6 @@ i915_gem_object_unpin_pages(struct drm_i915_gem_object *obj)
int __i915_gem_object_put_pages(struct drm_i915_gem_object *obj);
int i915_gem_object_truncate(struct drm_i915_gem_object *obj);
-void i915_gem_object_writeback(struct drm_i915_gem_object *obj);
/**
* i915_gem_object_pin_map - return a contiguous mapping of the entire object
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index f9f7e44099fe..00c844caeabd 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -57,7 +57,6 @@ struct drm_i915_gem_object_ops {
void (*put_pages)(struct drm_i915_gem_object *obj,
struct sg_table *pages);
int (*truncate)(struct drm_i915_gem_object *obj);
- void (*writeback)(struct drm_i915_gem_object *obj);
int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
bool no_gpu_wait,
bool should_writeback);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index 89b70f5cde7a..820eee5e954e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -168,16 +168,6 @@ int i915_gem_object_truncate(struct drm_i915_gem_object *obj)
return 0;
}
-/* Try to discard unwanted pages */
-void i915_gem_object_writeback(struct drm_i915_gem_object *obj)
-{
- assert_object_held_shared(obj);
- GEM_BUG_ON(i915_gem_object_has_pages(obj));
-
- if (obj->ops->writeback)
- obj->ops->writeback(obj);
-}
-
static void __i915_gem_object_reset_page_iter(struct drm_i915_gem_object *obj)
{
struct radix_tree_iter iter;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index cc9fe258fba7..7fdf4fa10b0e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -331,6 +331,23 @@ shmem_writeback(struct drm_i915_gem_object *obj)
__shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
}
+static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
+ bool no_gpu_wait,
+ bool writeback)
+{
+ switch (obj->mm.madv) {
+ case I915_MADV_DONTNEED:
+ return i915_gem_object_truncate(obj);
+ case __I915_MADV_PURGED:
+ return 0;
+ }
+
+ if (writeback)
+ shmem_writeback(obj);
+
+ return 0;
+}
+
void
__i915_gem_object_release_shmem(struct drm_i915_gem_object *obj,
struct sg_table *pages,
@@ -503,7 +520,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = {
.get_pages = shmem_get_pages,
.put_pages = shmem_put_pages,
.truncate = shmem_truncate,
- .writeback = shmem_writeback,
+ .shrinker_release_pages = shmem_shrinker_release_pages,
.pwrite = shmem_pwrite,
.pread = shmem_pread,
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index 157a9765f483..fd54e05521f6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -61,18 +61,6 @@ static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
return obj->ops->shrinker_release_pages(obj,
!(flags & I915_SHRINK_ACTIVE),
flags & I915_SHRINK_WRITEBACK);
-
- switch (obj->mm.madv) {
- case I915_MADV_DONTNEED:
- i915_gem_object_truncate(obj);
- return 0;
- case __I915_MADV_PURGED:
- return 0;
- }
-
- if (flags & I915_SHRINK_WRITEBACK)
- i915_gem_object_writeback(obj);
-
return 0;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] drm/i915: clean up shrinker_release_pages
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
@ 2021-12-15 11:07 ` Matthew Auld
-1 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2021-12-15 11:07 UTC (permalink / raw)
To: intel-gfx; +Cc: Tvrtko Ursulin, dri-devel
Add some proper flags for the different modes, and shorten the name to
something more snappy.
Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
.../gpu/drm/i915/gem/i915_gem_object_types.h | 23 ++++++++++++++++---
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 8 +++----
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 16 +++++++++----
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 10 ++++----
4 files changed, 39 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index 00c844caeabd..6f446cca4322 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -57,9 +57,26 @@ struct drm_i915_gem_object_ops {
void (*put_pages)(struct drm_i915_gem_object *obj,
struct sg_table *pages);
int (*truncate)(struct drm_i915_gem_object *obj);
- int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
- bool no_gpu_wait,
- bool should_writeback);
+ /**
+ * shrink - Perform further backend specific actions to facilate
+ * shrinking.
+ * @obj: The gem object
+ * @flags: Extra flags to control shrinking behaviour in the backend
+ *
+ * Possible values for @flags:
+ *
+ * I915_GEM_OBJECT_SHRINK_WRITEBACK - Try to perform writeback of the
+ * backing pages, if supported.
+ *
+ * I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT - Don't wait for the object to
+ * idle. Active objects can be considered later. The TTM backend for
+ * example might have aync migrations going on, which don't use any
+ * i915_vma to track the active GTT binding, and hence having an unbound
+ * object might not be enough.
+ */
+#define I915_GEM_OBJECT_SHRINK_WRITEBACK BIT(0)
+#define I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT BIT(1)
+ int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
int (*pread)(struct drm_i915_gem_object *obj,
const struct drm_i915_gem_pread *arg);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 7fdf4fa10b0e..6c57b0a79c8a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -331,9 +331,7 @@ shmem_writeback(struct drm_i915_gem_object *obj)
__shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
}
-static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
- bool no_gpu_wait,
- bool writeback)
+static int shmem_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
{
switch (obj->mm.madv) {
case I915_MADV_DONTNEED:
@@ -342,7 +340,7 @@ static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
return 0;
}
- if (writeback)
+ if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
shmem_writeback(obj);
return 0;
@@ -520,7 +518,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = {
.get_pages = shmem_get_pages,
.put_pages = shmem_put_pages,
.truncate = shmem_truncate,
- .shrinker_release_pages = shmem_shrinker_release_pages,
+ .shrink = shmem_shrink,
.pwrite = shmem_pwrite,
.pread = shmem_pread,
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index fd54e05521f6..968ca0fdd57b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -57,10 +57,18 @@ static bool unsafe_drop_pages(struct drm_i915_gem_object *obj,
static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
{
- if (obj->ops->shrinker_release_pages)
- return obj->ops->shrinker_release_pages(obj,
- !(flags & I915_SHRINK_ACTIVE),
- flags & I915_SHRINK_WRITEBACK);
+ if (obj->ops->shrink) {
+ unsigned int shrink_flags = 0;
+
+ if (!(flags & I915_SHRINK_ACTIVE))
+ shrink_flags |= I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT;
+
+ if (flags & I915_SHRINK_WRITEBACK)
+ shrink_flags |= I915_GEM_OBJECT_SHRINK_WRITEBACK;
+
+ return obj->ops->shrink(obj, shrink_flags);
+ }
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 923cc7ad8d70..21277f3c64e7 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -424,16 +424,14 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
return 0;
}
-static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
- bool no_wait_gpu,
- bool should_writeback)
+static int i915_ttm_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
{
struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
struct i915_ttm_tt *i915_tt =
container_of(bo->ttm, typeof(*i915_tt), ttm);
struct ttm_operation_ctx ctx = {
.interruptible = true,
- .no_wait_gpu = no_wait_gpu,
+ .no_wait_gpu = flags & I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT,
};
struct ttm_placement place = {};
int ret;
@@ -467,7 +465,7 @@ static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
return ret;
}
- if (should_writeback)
+ if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
__shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
return 0;
@@ -953,7 +951,7 @@ static const struct drm_i915_gem_object_ops i915_gem_ttm_obj_ops = {
.get_pages = i915_ttm_get_pages,
.put_pages = i915_ttm_put_pages,
.truncate = i915_ttm_purge,
- .shrinker_release_pages = i915_ttm_shrinker_release_pages,
+ .shrink = i915_ttm_shrink,
.adjust_lru = i915_ttm_adjust_lru,
.delayed_free = i915_ttm_delayed_free,
--
2.31.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915: clean up shrinker_release_pages
@ 2021-12-15 11:07 ` Matthew Auld
0 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2021-12-15 11:07 UTC (permalink / raw)
To: intel-gfx; +Cc: dri-devel
Add some proper flags for the different modes, and shorten the name to
something more snappy.
Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
.../gpu/drm/i915/gem/i915_gem_object_types.h | 23 ++++++++++++++++---
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 8 +++----
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 16 +++++++++----
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 10 ++++----
4 files changed, 39 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
index 00c844caeabd..6f446cca4322 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -57,9 +57,26 @@ struct drm_i915_gem_object_ops {
void (*put_pages)(struct drm_i915_gem_object *obj,
struct sg_table *pages);
int (*truncate)(struct drm_i915_gem_object *obj);
- int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
- bool no_gpu_wait,
- bool should_writeback);
+ /**
+ * shrink - Perform further backend specific actions to facilate
+ * shrinking.
+ * @obj: The gem object
+ * @flags: Extra flags to control shrinking behaviour in the backend
+ *
+ * Possible values for @flags:
+ *
+ * I915_GEM_OBJECT_SHRINK_WRITEBACK - Try to perform writeback of the
+ * backing pages, if supported.
+ *
+ * I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT - Don't wait for the object to
+ * idle. Active objects can be considered later. The TTM backend for
+ * example might have aync migrations going on, which don't use any
+ * i915_vma to track the active GTT binding, and hence having an unbound
+ * object might not be enough.
+ */
+#define I915_GEM_OBJECT_SHRINK_WRITEBACK BIT(0)
+#define I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT BIT(1)
+ int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
int (*pread)(struct drm_i915_gem_object *obj,
const struct drm_i915_gem_pread *arg);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 7fdf4fa10b0e..6c57b0a79c8a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -331,9 +331,7 @@ shmem_writeback(struct drm_i915_gem_object *obj)
__shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
}
-static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
- bool no_gpu_wait,
- bool writeback)
+static int shmem_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
{
switch (obj->mm.madv) {
case I915_MADV_DONTNEED:
@@ -342,7 +340,7 @@ static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
return 0;
}
- if (writeback)
+ if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
shmem_writeback(obj);
return 0;
@@ -520,7 +518,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = {
.get_pages = shmem_get_pages,
.put_pages = shmem_put_pages,
.truncate = shmem_truncate,
- .shrinker_release_pages = shmem_shrinker_release_pages,
+ .shrink = shmem_shrink,
.pwrite = shmem_pwrite,
.pread = shmem_pread,
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index fd54e05521f6..968ca0fdd57b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -57,10 +57,18 @@ static bool unsafe_drop_pages(struct drm_i915_gem_object *obj,
static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
{
- if (obj->ops->shrinker_release_pages)
- return obj->ops->shrinker_release_pages(obj,
- !(flags & I915_SHRINK_ACTIVE),
- flags & I915_SHRINK_WRITEBACK);
+ if (obj->ops->shrink) {
+ unsigned int shrink_flags = 0;
+
+ if (!(flags & I915_SHRINK_ACTIVE))
+ shrink_flags |= I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT;
+
+ if (flags & I915_SHRINK_WRITEBACK)
+ shrink_flags |= I915_GEM_OBJECT_SHRINK_WRITEBACK;
+
+ return obj->ops->shrink(obj, shrink_flags);
+ }
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 923cc7ad8d70..21277f3c64e7 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -424,16 +424,14 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
return 0;
}
-static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
- bool no_wait_gpu,
- bool should_writeback)
+static int i915_ttm_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
{
struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
struct i915_ttm_tt *i915_tt =
container_of(bo->ttm, typeof(*i915_tt), ttm);
struct ttm_operation_ctx ctx = {
.interruptible = true,
- .no_wait_gpu = no_wait_gpu,
+ .no_wait_gpu = flags & I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT,
};
struct ttm_placement place = {};
int ret;
@@ -467,7 +465,7 @@ static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
return ret;
}
- if (should_writeback)
+ if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
__shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
return 0;
@@ -953,7 +951,7 @@ static const struct drm_i915_gem_object_ops i915_gem_ttm_obj_ops = {
.get_pages = i915_ttm_get_pages,
.put_pages = i915_ttm_put_pages,
.truncate = i915_ttm_purge,
- .shrinker_release_pages = i915_ttm_shrinker_release_pages,
+ .shrink = i915_ttm_shrink,
.adjust_lru = i915_ttm_adjust_lru,
.delayed_free = i915_ttm_delayed_free,
--
2.31.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm/i915: remove writeback hook
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
(?)
(?)
@ 2021-12-15 12:14 ` Patchwork
-1 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2021-12-15 12:14 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915: remove writeback hook
URL : https://patchwork.freedesktop.org/series/98061/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: remove writeback hook
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
` (2 preceding siblings ...)
(?)
@ 2021-12-15 12:38 ` Patchwork
-1 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2021-12-15 12:38 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 5026 bytes --]
== Series Details ==
Series: series starting with [1/2] drm/i915: remove writeback hook
URL : https://patchwork.freedesktop.org/series/98061/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_11004 -> Patchwork_21853
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/index.html
Participating hosts (41 -> 33)
------------------------------
Missing (8): bat-dg1-6 bat-dg1-5 fi-skl-guc fi-bsw-cyan bat-adlp-6 fi-pnv-d510 fi-bdw-samus bat-jsl-1
Known issues
------------
Here are the changes found in Patchwork_21853 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_basic@cs-gfx:
- fi-hsw-4770: NOTRUN -> [SKIP][1] ([fdo#109271] / [fdo#109315]) +17 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-hsw-4770/igt@amdgpu/amd_basic@cs-gfx.html
* igt@amdgpu/amd_cs_nop@sync-gfx0:
- fi-bsw-n3050: NOTRUN -> [SKIP][2] ([fdo#109271]) +17 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-bsw-n3050/igt@amdgpu/amd_cs_nop@sync-gfx0.html
* igt@gem_exec_suspend@basic-s3:
- fi-bdw-5557u: [PASS][3] -> [INCOMPLETE][4] ([i915#146])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/fi-bdw-5557u/igt@gem_exec_suspend@basic-s3.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-bdw-5557u/igt@gem_exec_suspend@basic-s3.html
- fi-skl-6600u: [PASS][5] -> [INCOMPLETE][6] ([i915#4547])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/fi-skl-6600u/igt@gem_exec_suspend@basic-s3.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-skl-6600u/igt@gem_exec_suspend@basic-s3.html
* igt@kms_frontbuffer_tracking@basic:
- fi-cml-u2: [PASS][7] -> [DMESG-WARN][8] ([i915#4269])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
* igt@runner@aborted:
- fi-skl-6600u: NOTRUN -> [FAIL][9] ([i915#2722] / [i915#4312])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-skl-6600u/igt@runner@aborted.html
#### Possible fixes ####
* igt@i915_pm_rpm@basic-rte:
- {fi-tgl-dsi}: [DMESG-WARN][10] ([i915#1982] / [i915#2411]) -> [PASS][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/fi-tgl-dsi/igt@i915_pm_rpm@basic-rte.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-tgl-dsi/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@execlists:
- fi-bsw-n3050: [INCOMPLETE][12] ([i915#2940]) -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/fi-bsw-n3050/igt@i915_selftest@live@execlists.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-bsw-n3050/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@hangcheck:
- fi-hsw-4770: [INCOMPLETE][14] ([i915#4785]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
[i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
[i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
[i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
Build changes
-------------
* Linux: CI_DRM_11004 -> Patchwork_21853
CI-20190529: 20190529
CI_DRM_11004: 636384ba8470ed9d16693aaff3e6ad13f52226be @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6307: be84fe4f151bc092e068cab5cd0cd19c34948b40 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_21853: 8ea115b08d86430bd237f3726763faf87cb1dce9 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
8ea115b08d86 drm/i915: clean up shrinker_release_pages
8ce0825fdd81 drm/i915: remove writeback hook
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/index.html
[-- Attachment #2: Type: text/html, Size: 5850 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/2] drm/i915: remove writeback hook
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
` (3 preceding siblings ...)
(?)
@ 2021-12-15 14:53 ` Patchwork
-1 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2021-12-15 14:53 UTC (permalink / raw)
To: Matthew Auld; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 30281 bytes --]
== Series Details ==
Series: series starting with [1/2] drm/i915: remove writeback hook
URL : https://patchwork.freedesktop.org/series/98061/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_11004_full -> Patchwork_21853_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_21853_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_21853_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_21853_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_psr@suspend:
- shard-skl: [PASS][1] -> [INCOMPLETE][2] +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-skl9/igt@kms_psr@suspend.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl7/igt@kms_psr@suspend.html
Known issues
------------
Here are the changes found in Patchwork_21853_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_eio@unwedge-stress:
- shard-tglb: [PASS][3] -> [TIMEOUT][4] ([i915#3063] / [i915#3648])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-tglb8/igt@gem_eio@unwedge-stress.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb5/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl: NOTRUN -> [FAIL][5] ([i915#2842])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl6/igt@gem_exec_fair@basic-none-solo@rcs0.html
- shard-iclb: NOTRUN -> [FAIL][6] ([i915#2842])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-none@vcs0:
- shard-kbl: [PASS][7] -> [FAIL][8] ([i915#2842]) +2 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-kbl4/igt@gem_exec_fair@basic-none@vcs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@gem_exec_fair@basic-none@vcs0.html
* igt@gem_exec_fair@basic-none@vecs0:
- shard-apl: [PASS][9] -> [FAIL][10] ([i915#2842])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-apl8/igt@gem_exec_fair@basic-none@vecs0.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl1/igt@gem_exec_fair@basic-none@vecs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglb: NOTRUN -> [FAIL][11] ([i915#2842])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@bcs0:
- shard-tglb: [PASS][12] -> [FAIL][13] ([i915#2842]) +1 similar issue
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-tglb3/igt@gem_exec_fair@basic-pace@bcs0.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb2/igt@gem_exec_fair@basic-pace@bcs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk: [PASS][14] -> [FAIL][15] ([i915#2842])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-glk7/igt@gem_exec_fair@basic-throttle@rcs0.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-glk3/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_huc_copy@huc-copy:
- shard-skl: NOTRUN -> [SKIP][16] ([fdo#109271] / [i915#2190])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl10/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-verify-random:
- shard-kbl: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#4613]) +4 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@gem_lmem_swapping@heavy-verify-random.html
- shard-skl: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613]) +3 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl4/igt@gem_lmem_swapping@heavy-verify-random.html
* igt@gem_lmem_swapping@parallel-multi:
- shard-tglb: NOTRUN -> [SKIP][19] ([i915#4613]) +2 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb8/igt@gem_lmem_swapping@parallel-multi.html
* igt@gem_lmem_swapping@random:
- shard-iclb: NOTRUN -> [SKIP][20] ([i915#4613])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@gem_lmem_swapping@random.html
* igt@gem_lmem_swapping@smem-oom:
- shard-apl: NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#4613])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_pwrite@basic-exhaustion:
- shard-iclb: NOTRUN -> [WARN][22] ([i915#2658])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@gem_pwrite@basic-exhaustion.html
- shard-kbl: NOTRUN -> [WARN][23] ([i915#2658])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl6/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_pxp@fail-invalid-protected-context:
- shard-tglb: NOTRUN -> [SKIP][24] ([i915#4270])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@gem_pxp@fail-invalid-protected-context.html
- shard-iclb: NOTRUN -> [SKIP][25] ([i915#4270])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb1/igt@gem_pxp@fail-invalid-protected-context.html
* igt@gem_render_copy@y-tiled-to-vebox-x-tiled:
- shard-iclb: NOTRUN -> [SKIP][26] ([i915#768])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@gem_render_copy@y-tiled-to-vebox-x-tiled.html
* igt@gen3_render_tiledy_blits:
- shard-tglb: NOTRUN -> [SKIP][27] ([fdo#109289])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@gen3_render_tiledy_blits.html
* igt@gen7_exec_parse@batch-without-end:
- shard-iclb: NOTRUN -> [SKIP][28] ([fdo#109289])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@gen7_exec_parse@batch-without-end.html
* igt@gen9_exec_parse@batch-without-end:
- shard-tglb: NOTRUN -> [SKIP][29] ([i915#2856]) +1 similar issue
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@gen9_exec_parse@batch-without-end.html
* igt@gen9_exec_parse@secure-batches:
- shard-iclb: NOTRUN -> [SKIP][30] ([i915#2856])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@gen9_exec_parse@secure-batches.html
* igt@i915_pm_dc@dc6-dpms:
- shard-kbl: NOTRUN -> [FAIL][31] ([i915#454])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl2/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_dc@dc6-psr:
- shard-tglb: NOTRUN -> [FAIL][32] ([i915#454])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_dc@dc9-dpms:
- shard-tglb: NOTRUN -> [SKIP][33] ([i915#4281])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
- shard-kbl: NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#1937])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl2/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-tglb: NOTRUN -> [WARN][35] ([i915#2681] / [i915#2684])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@i915_query@query-topology-known-pci-ids:
- shard-tglb: NOTRUN -> [SKIP][36] ([fdo#109303])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@i915_query@query-topology-known-pci-ids.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-kbl: [PASS][37] -> [DMESG-WARN][38] ([i915#180]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-kbl2/igt@i915_suspend@fence-restore-tiled2untiled.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl4/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0:
- shard-skl: NOTRUN -> [DMESG-WARN][39] ([i915#1982])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl1/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0.html
* igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-kbl: NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#3777]) +2 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-270:
- shard-tglb: NOTRUN -> [SKIP][41] ([fdo#111614]) +1 similar issue
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-0:
- shard-tglb: NOTRUN -> [SKIP][42] ([fdo#111615]) +3 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-180:
- shard-iclb: NOTRUN -> [SKIP][43] ([fdo#110723])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_big_fb@yf-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-skl: NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3777])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl10/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-skl: NOTRUN -> [FAIL][45] ([i915#3743]) +2 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl10/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_joiner@invalid-modeset:
- shard-tglb: NOTRUN -> [SKIP][46] ([i915#2705])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
- shard-kbl: NOTRUN -> [SKIP][47] ([fdo#109271] / [i915#3886]) +9 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl2/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#3886]) +1 similar issue
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
- shard-iclb: NOTRUN -> [SKIP][49] ([fdo#109278] / [i915#3886]) +2 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
- shard-skl: NOTRUN -> [SKIP][50] ([fdo#109271] / [i915#3886]) +12 similar issues
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl6/igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][51] ([i915#3689])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs.html
* igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][52] ([i915#3689] / [i915#3886]) +3 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][53] ([fdo#111615] / [i915#3689]) +2 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_ccs:
- shard-kbl: NOTRUN -> [SKIP][54] ([fdo#109271]) +227 similar issues
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl6/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_ccs.html
* igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
- shard-skl: NOTRUN -> [SKIP][55] ([fdo#109271]) +188 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl10/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_cdclk@mode-transition:
- shard-iclb: NOTRUN -> [SKIP][56] ([i915#3742])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_cdclk@mode-transition.html
* igt@kms_chamelium@dp-frame-dump:
- shard-iclb: NOTRUN -> [SKIP][57] ([fdo#109284] / [fdo#111827]) +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_chamelium@dp-frame-dump.html
* igt@kms_chamelium@hdmi-hpd-storm:
- shard-kbl: NOTRUN -> [SKIP][58] ([fdo#109271] / [fdo#111827]) +21 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@kms_chamelium@hdmi-hpd-storm.html
* igt@kms_chamelium@vga-hpd-after-suspend:
- shard-skl: NOTRUN -> [SKIP][59] ([fdo#109271] / [fdo#111827]) +15 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl6/igt@kms_chamelium@vga-hpd-after-suspend.html
* igt@kms_color@pipe-d-ctm-blue-to-red:
- shard-iclb: NOTRUN -> [SKIP][60] ([fdo#109278] / [i915#1149])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_color@pipe-d-ctm-blue-to-red.html
* igt@kms_color_chamelium@pipe-a-ctm-green-to-red:
- shard-apl: NOTRUN -> [SKIP][61] ([fdo#109271] / [fdo#111827]) +2 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@kms_color_chamelium@pipe-a-ctm-green-to-red.html
* igt@kms_color_chamelium@pipe-c-degamma:
- shard-tglb: NOTRUN -> [SKIP][62] ([fdo#109284] / [fdo#111827]) +6 similar issues
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_color_chamelium@pipe-c-degamma.html
* igt@kms_color_chamelium@pipe-d-ctm-0-25:
- shard-iclb: NOTRUN -> [SKIP][63] ([fdo#109278] / [fdo#109284] / [fdo#111827])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
* igt@kms_content_protection@legacy:
- shard-kbl: NOTRUN -> [TIMEOUT][64] ([i915#1319]) +1 similar issue
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl7/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@uevent:
- shard-tglb: NOTRUN -> [SKIP][65] ([fdo#111828])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:
- shard-tglb: NOTRUN -> [SKIP][66] ([i915#3319])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html
* igt@kms_cursor_crc@pipe-c-cursor-32x10-rapid-movement:
- shard-tglb: NOTRUN -> [SKIP][67] ([i915#3359]) +3 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_cursor_crc@pipe-c-cursor-32x10-rapid-movement.html
* igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding:
- shard-iclb: NOTRUN -> [SKIP][68] ([fdo#109278] / [fdo#109279]) +1 similar issue
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding.html
* igt@kms_cursor_crc@pipe-d-cursor-256x85-onscreen:
- shard-iclb: NOTRUN -> [SKIP][69] ([fdo#109278]) +9 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_cursor_crc@pipe-d-cursor-256x85-onscreen.html
* igt@kms_cursor_crc@pipe-d-cursor-512x512-rapid-movement:
- shard-tglb: NOTRUN -> [SKIP][70] ([fdo#109279] / [i915#3359]) +1 similar issue
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_cursor_crc@pipe-d-cursor-512x512-rapid-movement.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-legacy:
- shard-iclb: NOTRUN -> [SKIP][71] ([fdo#109274] / [fdo#109278])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html
* igt@kms_cursor_legacy@pipe-d-torture-bo:
- shard-kbl: NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#533])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@kms_cursor_legacy@pipe-d-torture-bo.html
- shard-skl: NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#533]) +1 similar issue
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl4/igt@kms_cursor_legacy@pipe-d-torture-bo.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-tglb: NOTRUN -> [SKIP][74] ([i915#4103])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][75] -> [FAIL][76] ([i915#2122])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-glk4/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@2x-flip-vs-rmfb-interruptible:
- shard-iclb: NOTRUN -> [SKIP][77] ([fdo#109274])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
- shard-apl: [PASS][78] -> [DMESG-WARN][79] ([i915#180]) +1 similar issue
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-apl7/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
* igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-yf-ccs:
- shard-kbl: NOTRUN -> [DMESG-WARN][80] ([i915#1226])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-yf-ccs.html
* igt@kms_force_connector_basic@force-load-detect:
- shard-tglb: NOTRUN -> [SKIP][81] ([fdo#109285])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render:
- shard-iclb: NOTRUN -> [SKIP][82] ([fdo#109280]) +12 similar issues
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt:
- shard-tglb: NOTRUN -> [SKIP][83] ([fdo#111825]) +22 similar issues
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite:
- shard-apl: NOTRUN -> [SKIP][84] ([fdo#109271]) +45 similar issues
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite.html
* igt@kms_hdr@static-toggle-dpms:
- shard-tglb: NOTRUN -> [SKIP][85] ([i915#1187]) +1 similar issue
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- shard-apl: NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#533]) +1 similar issue
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-kbl: NOTRUN -> [FAIL][87] ([fdo#108145] / [i915#265]) +3 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl: NOTRUN -> [FAIL][88] ([fdo#108145] / [i915#265]) +2 similar issues
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
* igt@kms_plane_lowres@pipe-b-tiling-y:
- shard-tglb: NOTRUN -> [SKIP][89] ([i915#3536]) +2 similar issues
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_plane_lowres@pipe-b-tiling-y.html
* igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
- shard-skl: NOTRUN -> [SKIP][90] ([fdo#109271] / [i915#658])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl10/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
- shard-apl: NOTRUN -> [SKIP][91] ([fdo#109271] / [i915#658])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
- shard-tglb: NOTRUN -> [SKIP][92] ([i915#2920])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
- shard-iclb: NOTRUN -> [SKIP][93] ([fdo#111068] / [i915#658])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
- shard-kbl: NOTRUN -> [SKIP][94] ([fdo#109271] / [i915#658]) +1 similar issue
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
* igt@kms_psr@psr2_basic:
- shard-tglb: NOTRUN -> [FAIL][95] ([i915#132] / [i915#3467]) +1 similar issue
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_psr@psr2_basic.html
* igt@kms_tv_load_detect@load-detect:
- shard-tglb: NOTRUN -> [SKIP][96] ([fdo#109309])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@kms_tv_load_detect@load-detect.html
* igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
- shard-kbl: [PASS][97] -> [INCOMPLETE][98] ([i915#2828])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-kbl6/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl4/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html
* igt@kms_vrr@flip-dpms:
- shard-iclb: NOTRUN -> [SKIP][99] ([fdo#109502])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@kms_vrr@flip-dpms.html
* igt@nouveau_crc@pipe-b-ctx-flip-detection:
- shard-tglb: NOTRUN -> [SKIP][100] ([i915#2530]) +1 similar issue
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@nouveau_crc@pipe-b-ctx-flip-detection.html
* igt@perf@polling-small-buf:
- shard-skl: [PASS][101] -> [FAIL][102] ([i915#1722])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-skl1/igt@perf@polling-small-buf.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl7/igt@perf@polling-small-buf.html
* igt@prime_nv_api@i915_self_import:
- shard-tglb: NOTRUN -> [SKIP][103] ([fdo#109291])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@prime_nv_api@i915_self_import.html
* igt@prime_vgem@fence-flip-hang:
- shard-iclb: NOTRUN -> [SKIP][104] ([fdo#109295])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb7/igt@prime_vgem@fence-flip-hang.html
* igt@sysfs_clients@busy:
- shard-tglb: NOTRUN -> [SKIP][105] ([i915#2994]) +3 similar issues
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb1/igt@sysfs_clients@busy.html
* igt@sysfs_clients@fair-0:
- shard-skl: NOTRUN -> [SKIP][106] ([fdo#109271] / [i915#2994]) +3 similar issues
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl8/igt@sysfs_clients@fair-0.html
* igt@sysfs_clients@sema-25:
- shard-apl: NOTRUN -> [SKIP][107] ([fdo#109271] / [i915#2994])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@sysfs_clients@sema-25.html
* igt@sysfs_clients@sema-50:
- shard-kbl: NOTRUN -> [SKIP][108] ([fdo#109271] / [i915#2994]) +4 similar issues
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl2/igt@sysfs_clients@sema-50.html
#### Possible fixes ####
* igt@drm_read@empty-block:
- {shard-rkl}: ([SKIP][109], [SKIP][110]) ([i915#1845]) -> [PASS][111] +1 similar issue
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-rkl-4/igt@drm_read@empty-block.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-rkl-1/igt@drm_read@empty-block.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-rkl-6/igt@drm_read@empty-block.html
* igt@gem_ctx_isolation@preservation-s3@vecs0:
- {shard-rkl}: ([DMESG-WARN][112], [PASS][113]) -> [PASS][114]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-rkl-1/igt@gem_ctx_isolation@preservation-s3@vecs0.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-rkl-4/igt@gem_ctx_isolation@preservation-s3@vecs0.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-rkl-1/igt@gem_ctx_isolation@preservation-s3@vecs0.html
- shard-apl: [DMESG-WARN][115] ([i915#180]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-apl6/igt@gem_ctx_isolation@preservation-s3@vecs0.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-apl6/igt@gem_ctx_isolation@preservation-s3@vecs0.html
* igt@gem_eio@unwedge-stress:
- shard-skl: [TIMEOUT][117] ([i915#3063]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-skl9/igt@gem_eio@unwedge-stress.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-skl10/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_fair@basic-none-rrul@rcs0:
- shard-glk: [FAIL][119] ([i915#2842]) -> [PASS][120] +1 similar issue
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-glk1/igt@gem_exec_fair@basic-none-rrul@rcs0.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-glk5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-iclb: [FAIL][121] ([i915#2842]) -> [PASS][122] +1 similar issue
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-iclb8/igt@gem_exec_fair@basic-none-share@rcs0.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb1/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-none@vecs0:
- shard-kbl: [FAIL][123] ([i915#2842]) -> [PASS][124]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-kbl4/igt@gem_exec_fair@basic-none@vecs0.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-kbl3/igt@gem_exec_fair@basic-none@vecs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-tglb: [FAIL][125] ([i915#2842]) -> [PASS][126]
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-tglb3/igt@gem_exec_fair@basic-pace@vecs0.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-tglb2/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][127] ([i915#2849]) -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-iclb3/igt@gem_exec_fair@basic-throttle@rcs0.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_exec_whisper@basic-contexts-forked-all:
- shard-glk: [DMESG-WARN][129] ([i915#118]) -> [PASS][130]
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11004/shard-glk1/igt@gem_exec_whisper@basic-contexts-forked-all.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/shard-glk5/igt@gem_exec_whisper@basic-contexts-forked-all.html
* igt@i915_pm_rpm@drm-resources-equal:
- {shard-rkl}: [SKIP][131] ([fdo#109308]) -> [PASS][132]
[13
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21853/index.html
[-- Attachment #2: Type: text/html, Size: 33845 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915: clean up shrinker_release_pages
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
@ 2021-12-15 15:55 ` Tvrtko Ursulin
-1 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2021-12-15 15:55 UTC (permalink / raw)
To: Matthew Auld, intel-gfx; +Cc: dri-devel
On 15/12/2021 11:07, Matthew Auld wrote:
> Add some proper flags for the different modes, and shorten the name to
> something more snappy.
Looks good to me - but since it touches TTM I leave for Thomas to approve.
Regards,
Tvrtko
P.S. I hope writing the patch means you thought it is an improvement as
well, rather than feeling I was asking for it to be done.
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> ---
> .../gpu/drm/i915/gem/i915_gem_object_types.h | 23 ++++++++++++++++---
> drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 8 +++----
> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 16 +++++++++----
> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 10 ++++----
> 4 files changed, 39 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> index 00c844caeabd..6f446cca4322 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> @@ -57,9 +57,26 @@ struct drm_i915_gem_object_ops {
> void (*put_pages)(struct drm_i915_gem_object *obj,
> struct sg_table *pages);
> int (*truncate)(struct drm_i915_gem_object *obj);
> - int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
> - bool no_gpu_wait,
> - bool should_writeback);
> + /**
> + * shrink - Perform further backend specific actions to facilate
> + * shrinking.
> + * @obj: The gem object
> + * @flags: Extra flags to control shrinking behaviour in the backend
> + *
> + * Possible values for @flags:
> + *
> + * I915_GEM_OBJECT_SHRINK_WRITEBACK - Try to perform writeback of the
> + * backing pages, if supported.
> + *
> + * I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT - Don't wait for the object to
> + * idle. Active objects can be considered later. The TTM backend for
> + * example might have aync migrations going on, which don't use any
> + * i915_vma to track the active GTT binding, and hence having an unbound
> + * object might not be enough.
> + */
> +#define I915_GEM_OBJECT_SHRINK_WRITEBACK BIT(0)
> +#define I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT BIT(1)
> + int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
>
> int (*pread)(struct drm_i915_gem_object *obj,
> const struct drm_i915_gem_pread *arg);
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> index 7fdf4fa10b0e..6c57b0a79c8a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -331,9 +331,7 @@ shmem_writeback(struct drm_i915_gem_object *obj)
> __shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
> }
>
> -static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
> - bool no_gpu_wait,
> - bool writeback)
> +static int shmem_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
> {
> switch (obj->mm.madv) {
> case I915_MADV_DONTNEED:
> @@ -342,7 +340,7 @@ static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
> return 0;
> }
>
> - if (writeback)
> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
> shmem_writeback(obj);
>
> return 0;
> @@ -520,7 +518,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = {
> .get_pages = shmem_get_pages,
> .put_pages = shmem_put_pages,
> .truncate = shmem_truncate,
> - .shrinker_release_pages = shmem_shrinker_release_pages,
> + .shrink = shmem_shrink,
>
> .pwrite = shmem_pwrite,
> .pread = shmem_pread,
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> index fd54e05521f6..968ca0fdd57b 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> @@ -57,10 +57,18 @@ static bool unsafe_drop_pages(struct drm_i915_gem_object *obj,
>
> static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
> {
> - if (obj->ops->shrinker_release_pages)
> - return obj->ops->shrinker_release_pages(obj,
> - !(flags & I915_SHRINK_ACTIVE),
> - flags & I915_SHRINK_WRITEBACK);
> + if (obj->ops->shrink) {
> + unsigned int shrink_flags = 0;
> +
> + if (!(flags & I915_SHRINK_ACTIVE))
> + shrink_flags |= I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT;
> +
> + if (flags & I915_SHRINK_WRITEBACK)
> + shrink_flags |= I915_GEM_OBJECT_SHRINK_WRITEBACK;
> +
> + return obj->ops->shrink(obj, shrink_flags);
> + }
> +
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> index 923cc7ad8d70..21277f3c64e7 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> @@ -424,16 +424,14 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
> return 0;
> }
>
> -static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
> - bool no_wait_gpu,
> - bool should_writeback)
> +static int i915_ttm_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
> {
> struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
> struct i915_ttm_tt *i915_tt =
> container_of(bo->ttm, typeof(*i915_tt), ttm);
> struct ttm_operation_ctx ctx = {
> .interruptible = true,
> - .no_wait_gpu = no_wait_gpu,
> + .no_wait_gpu = flags & I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT,
> };
> struct ttm_placement place = {};
> int ret;
> @@ -467,7 +465,7 @@ static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
> return ret;
> }
>
> - if (should_writeback)
> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
> __shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
>
> return 0;
> @@ -953,7 +951,7 @@ static const struct drm_i915_gem_object_ops i915_gem_ttm_obj_ops = {
> .get_pages = i915_ttm_get_pages,
> .put_pages = i915_ttm_put_pages,
> .truncate = i915_ttm_purge,
> - .shrinker_release_pages = i915_ttm_shrinker_release_pages,
> + .shrink = i915_ttm_shrink,
>
> .adjust_lru = i915_ttm_adjust_lru,
> .delayed_free = i915_ttm_delayed_free,
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: clean up shrinker_release_pages
@ 2021-12-15 15:55 ` Tvrtko Ursulin
0 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2021-12-15 15:55 UTC (permalink / raw)
To: Matthew Auld, intel-gfx; +Cc: dri-devel
On 15/12/2021 11:07, Matthew Auld wrote:
> Add some proper flags for the different modes, and shorten the name to
> something more snappy.
Looks good to me - but since it touches TTM I leave for Thomas to approve.
Regards,
Tvrtko
P.S. I hope writing the patch means you thought it is an improvement as
well, rather than feeling I was asking for it to be done.
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> ---
> .../gpu/drm/i915/gem/i915_gem_object_types.h | 23 ++++++++++++++++---
> drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 8 +++----
> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 16 +++++++++----
> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 10 ++++----
> 4 files changed, 39 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> index 00c844caeabd..6f446cca4322 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> @@ -57,9 +57,26 @@ struct drm_i915_gem_object_ops {
> void (*put_pages)(struct drm_i915_gem_object *obj,
> struct sg_table *pages);
> int (*truncate)(struct drm_i915_gem_object *obj);
> - int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
> - bool no_gpu_wait,
> - bool should_writeback);
> + /**
> + * shrink - Perform further backend specific actions to facilate
> + * shrinking.
> + * @obj: The gem object
> + * @flags: Extra flags to control shrinking behaviour in the backend
> + *
> + * Possible values for @flags:
> + *
> + * I915_GEM_OBJECT_SHRINK_WRITEBACK - Try to perform writeback of the
> + * backing pages, if supported.
> + *
> + * I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT - Don't wait for the object to
> + * idle. Active objects can be considered later. The TTM backend for
> + * example might have aync migrations going on, which don't use any
> + * i915_vma to track the active GTT binding, and hence having an unbound
> + * object might not be enough.
> + */
> +#define I915_GEM_OBJECT_SHRINK_WRITEBACK BIT(0)
> +#define I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT BIT(1)
> + int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
>
> int (*pread)(struct drm_i915_gem_object *obj,
> const struct drm_i915_gem_pread *arg);
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> index 7fdf4fa10b0e..6c57b0a79c8a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -331,9 +331,7 @@ shmem_writeback(struct drm_i915_gem_object *obj)
> __shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
> }
>
> -static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
> - bool no_gpu_wait,
> - bool writeback)
> +static int shmem_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
> {
> switch (obj->mm.madv) {
> case I915_MADV_DONTNEED:
> @@ -342,7 +340,7 @@ static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
> return 0;
> }
>
> - if (writeback)
> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
> shmem_writeback(obj);
>
> return 0;
> @@ -520,7 +518,7 @@ const struct drm_i915_gem_object_ops i915_gem_shmem_ops = {
> .get_pages = shmem_get_pages,
> .put_pages = shmem_put_pages,
> .truncate = shmem_truncate,
> - .shrinker_release_pages = shmem_shrinker_release_pages,
> + .shrink = shmem_shrink,
>
> .pwrite = shmem_pwrite,
> .pread = shmem_pread,
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> index fd54e05521f6..968ca0fdd57b 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> @@ -57,10 +57,18 @@ static bool unsafe_drop_pages(struct drm_i915_gem_object *obj,
>
> static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
> {
> - if (obj->ops->shrinker_release_pages)
> - return obj->ops->shrinker_release_pages(obj,
> - !(flags & I915_SHRINK_ACTIVE),
> - flags & I915_SHRINK_WRITEBACK);
> + if (obj->ops->shrink) {
> + unsigned int shrink_flags = 0;
> +
> + if (!(flags & I915_SHRINK_ACTIVE))
> + shrink_flags |= I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT;
> +
> + if (flags & I915_SHRINK_WRITEBACK)
> + shrink_flags |= I915_GEM_OBJECT_SHRINK_WRITEBACK;
> +
> + return obj->ops->shrink(obj, shrink_flags);
> + }
> +
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> index 923cc7ad8d70..21277f3c64e7 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> @@ -424,16 +424,14 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
> return 0;
> }
>
> -static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
> - bool no_wait_gpu,
> - bool should_writeback)
> +static int i915_ttm_shrink(struct drm_i915_gem_object *obj, unsigned int flags)
> {
> struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
> struct i915_ttm_tt *i915_tt =
> container_of(bo->ttm, typeof(*i915_tt), ttm);
> struct ttm_operation_ctx ctx = {
> .interruptible = true,
> - .no_wait_gpu = no_wait_gpu,
> + .no_wait_gpu = flags & I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT,
> };
> struct ttm_placement place = {};
> int ret;
> @@ -467,7 +465,7 @@ static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
> return ret;
> }
>
> - if (should_writeback)
> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
> __shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
>
> return 0;
> @@ -953,7 +951,7 @@ static const struct drm_i915_gem_object_ops i915_gem_ttm_obj_ops = {
> .get_pages = i915_ttm_get_pages,
> .put_pages = i915_ttm_put_pages,
> .truncate = i915_ttm_purge,
> - .shrinker_release_pages = i915_ttm_shrinker_release_pages,
> + .shrink = i915_ttm_shrink,
>
> .adjust_lru = i915_ttm_adjust_lru,
> .delayed_free = i915_ttm_delayed_free,
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915: clean up shrinker_release_pages
2021-12-15 15:55 ` [Intel-gfx] " Tvrtko Ursulin
@ 2021-12-15 16:08 ` Matthew Auld
-1 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2021-12-15 16:08 UTC (permalink / raw)
To: Tvrtko Ursulin, intel-gfx, Thomas Hellström; +Cc: dri-devel
On 15/12/2021 15:55, Tvrtko Ursulin wrote:
>
> On 15/12/2021 11:07, Matthew Auld wrote:
>> Add some proper flags for the different modes, and shorten the name to
>> something more snappy.
>
> Looks good to me - but since it touches TTM I leave for Thomas to approve.
>
> Regards,
>
> Tvrtko
>
> P.S. I hope writing the patch means you thought it is an improvement as
> well, rather than feeling I was asking for it to be done.
Yes, I do see both patches as an improvement :)
>
>> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> ---
>> .../gpu/drm/i915/gem/i915_gem_object_types.h | 23 ++++++++++++++++---
>> drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 8 +++----
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 16 +++++++++----
>> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 10 ++++----
>> 4 files changed, 39 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> index 00c844caeabd..6f446cca4322 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> @@ -57,9 +57,26 @@ struct drm_i915_gem_object_ops {
>> void (*put_pages)(struct drm_i915_gem_object *obj,
>> struct sg_table *pages);
>> int (*truncate)(struct drm_i915_gem_object *obj);
>> - int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
>> - bool no_gpu_wait,
>> - bool should_writeback);
>> + /**
>> + * shrink - Perform further backend specific actions to facilate
>> + * shrinking.
>> + * @obj: The gem object
>> + * @flags: Extra flags to control shrinking behaviour in the backend
>> + *
>> + * Possible values for @flags:
>> + *
>> + * I915_GEM_OBJECT_SHRINK_WRITEBACK - Try to perform writeback of
>> the
>> + * backing pages, if supported.
>> + *
>> + * I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT - Don't wait for the object to
>> + * idle. Active objects can be considered later. The TTM backend
>> for
>> + * example might have aync migrations going on, which don't use any
>> + * i915_vma to track the active GTT binding, and hence having an
>> unbound
>> + * object might not be enough.
>> + */
>> +#define I915_GEM_OBJECT_SHRINK_WRITEBACK BIT(0)
>> +#define I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT BIT(1)
>> + int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
>> int (*pread)(struct drm_i915_gem_object *obj,
>> const struct drm_i915_gem_pread *arg);
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> index 7fdf4fa10b0e..6c57b0a79c8a 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> @@ -331,9 +331,7 @@ shmem_writeback(struct drm_i915_gem_object *obj)
>> __shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
>> }
>> -static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
>> - bool no_gpu_wait,
>> - bool writeback)
>> +static int shmem_shrink(struct drm_i915_gem_object *obj, unsigned int
>> flags)
>> {
>> switch (obj->mm.madv) {
>> case I915_MADV_DONTNEED:
>> @@ -342,7 +340,7 @@ static int shmem_shrinker_release_pages(struct
>> drm_i915_gem_object *obj,
>> return 0;
>> }
>> - if (writeback)
>> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
>> shmem_writeback(obj);
>> return 0;
>> @@ -520,7 +518,7 @@ const struct drm_i915_gem_object_ops
>> i915_gem_shmem_ops = {
>> .get_pages = shmem_get_pages,
>> .put_pages = shmem_put_pages,
>> .truncate = shmem_truncate,
>> - .shrinker_release_pages = shmem_shrinker_release_pages,
>> + .shrink = shmem_shrink,
>> .pwrite = shmem_pwrite,
>> .pread = shmem_pread,
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> index fd54e05521f6..968ca0fdd57b 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> @@ -57,10 +57,18 @@ static bool unsafe_drop_pages(struct
>> drm_i915_gem_object *obj,
>> static int try_to_writeback(struct drm_i915_gem_object *obj,
>> unsigned int flags)
>> {
>> - if (obj->ops->shrinker_release_pages)
>> - return obj->ops->shrinker_release_pages(obj,
>> - !(flags & I915_SHRINK_ACTIVE),
>> - flags & I915_SHRINK_WRITEBACK);
>> + if (obj->ops->shrink) {
>> + unsigned int shrink_flags = 0;
>> +
>> + if (!(flags & I915_SHRINK_ACTIVE))
>> + shrink_flags |= I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT;
>> +
>> + if (flags & I915_SHRINK_WRITEBACK)
>> + shrink_flags |= I915_GEM_OBJECT_SHRINK_WRITEBACK;
>> +
>> + return obj->ops->shrink(obj, shrink_flags);
>> + }
>> +
>> return 0;
>> }
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> index 923cc7ad8d70..21277f3c64e7 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> @@ -424,16 +424,14 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
>> return 0;
>> }
>> -static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object
>> *obj,
>> - bool no_wait_gpu,
>> - bool should_writeback)
>> +static int i915_ttm_shrink(struct drm_i915_gem_object *obj, unsigned
>> int flags)
>> {
>> struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
>> struct i915_ttm_tt *i915_tt =
>> container_of(bo->ttm, typeof(*i915_tt), ttm);
>> struct ttm_operation_ctx ctx = {
>> .interruptible = true,
>> - .no_wait_gpu = no_wait_gpu,
>> + .no_wait_gpu = flags & I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT,
>> };
>> struct ttm_placement place = {};
>> int ret;
>> @@ -467,7 +465,7 @@ static int i915_ttm_shrinker_release_pages(struct
>> drm_i915_gem_object *obj,
>> return ret;
>> }
>> - if (should_writeback)
>> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
>> __shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
>> return 0;
>> @@ -953,7 +951,7 @@ static const struct drm_i915_gem_object_ops
>> i915_gem_ttm_obj_ops = {
>> .get_pages = i915_ttm_get_pages,
>> .put_pages = i915_ttm_put_pages,
>> .truncate = i915_ttm_purge,
>> - .shrinker_release_pages = i915_ttm_shrinker_release_pages,
>> + .shrink = i915_ttm_shrink,
>> .adjust_lru = i915_ttm_adjust_lru,
>> .delayed_free = i915_ttm_delayed_free,
>>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: clean up shrinker_release_pages
@ 2021-12-15 16:08 ` Matthew Auld
0 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2021-12-15 16:08 UTC (permalink / raw)
To: Tvrtko Ursulin, intel-gfx, Thomas Hellström; +Cc: dri-devel
On 15/12/2021 15:55, Tvrtko Ursulin wrote:
>
> On 15/12/2021 11:07, Matthew Auld wrote:
>> Add some proper flags for the different modes, and shorten the name to
>> something more snappy.
>
> Looks good to me - but since it touches TTM I leave for Thomas to approve.
>
> Regards,
>
> Tvrtko
>
> P.S. I hope writing the patch means you thought it is an improvement as
> well, rather than feeling I was asking for it to be done.
Yes, I do see both patches as an improvement :)
>
>> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
>> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
>> ---
>> .../gpu/drm/i915/gem/i915_gem_object_types.h | 23 ++++++++++++++++---
>> drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 8 +++----
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 16 +++++++++----
>> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 10 ++++----
>> 4 files changed, 39 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> index 00c844caeabd..6f446cca4322 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> @@ -57,9 +57,26 @@ struct drm_i915_gem_object_ops {
>> void (*put_pages)(struct drm_i915_gem_object *obj,
>> struct sg_table *pages);
>> int (*truncate)(struct drm_i915_gem_object *obj);
>> - int (*shrinker_release_pages)(struct drm_i915_gem_object *obj,
>> - bool no_gpu_wait,
>> - bool should_writeback);
>> + /**
>> + * shrink - Perform further backend specific actions to facilate
>> + * shrinking.
>> + * @obj: The gem object
>> + * @flags: Extra flags to control shrinking behaviour in the backend
>> + *
>> + * Possible values for @flags:
>> + *
>> + * I915_GEM_OBJECT_SHRINK_WRITEBACK - Try to perform writeback of
>> the
>> + * backing pages, if supported.
>> + *
>> + * I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT - Don't wait for the object to
>> + * idle. Active objects can be considered later. The TTM backend
>> for
>> + * example might have aync migrations going on, which don't use any
>> + * i915_vma to track the active GTT binding, and hence having an
>> unbound
>> + * object might not be enough.
>> + */
>> +#define I915_GEM_OBJECT_SHRINK_WRITEBACK BIT(0)
>> +#define I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT BIT(1)
>> + int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
>> int (*pread)(struct drm_i915_gem_object *obj,
>> const struct drm_i915_gem_pread *arg);
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> index 7fdf4fa10b0e..6c57b0a79c8a 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>> @@ -331,9 +331,7 @@ shmem_writeback(struct drm_i915_gem_object *obj)
>> __shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
>> }
>> -static int shmem_shrinker_release_pages(struct drm_i915_gem_object *obj,
>> - bool no_gpu_wait,
>> - bool writeback)
>> +static int shmem_shrink(struct drm_i915_gem_object *obj, unsigned int
>> flags)
>> {
>> switch (obj->mm.madv) {
>> case I915_MADV_DONTNEED:
>> @@ -342,7 +340,7 @@ static int shmem_shrinker_release_pages(struct
>> drm_i915_gem_object *obj,
>> return 0;
>> }
>> - if (writeback)
>> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
>> shmem_writeback(obj);
>> return 0;
>> @@ -520,7 +518,7 @@ const struct drm_i915_gem_object_ops
>> i915_gem_shmem_ops = {
>> .get_pages = shmem_get_pages,
>> .put_pages = shmem_put_pages,
>> .truncate = shmem_truncate,
>> - .shrinker_release_pages = shmem_shrinker_release_pages,
>> + .shrink = shmem_shrink,
>> .pwrite = shmem_pwrite,
>> .pread = shmem_pread,
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> index fd54e05521f6..968ca0fdd57b 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
>> @@ -57,10 +57,18 @@ static bool unsafe_drop_pages(struct
>> drm_i915_gem_object *obj,
>> static int try_to_writeback(struct drm_i915_gem_object *obj,
>> unsigned int flags)
>> {
>> - if (obj->ops->shrinker_release_pages)
>> - return obj->ops->shrinker_release_pages(obj,
>> - !(flags & I915_SHRINK_ACTIVE),
>> - flags & I915_SHRINK_WRITEBACK);
>> + if (obj->ops->shrink) {
>> + unsigned int shrink_flags = 0;
>> +
>> + if (!(flags & I915_SHRINK_ACTIVE))
>> + shrink_flags |= I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT;
>> +
>> + if (flags & I915_SHRINK_WRITEBACK)
>> + shrink_flags |= I915_GEM_OBJECT_SHRINK_WRITEBACK;
>> +
>> + return obj->ops->shrink(obj, shrink_flags);
>> + }
>> +
>> return 0;
>> }
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> index 923cc7ad8d70..21277f3c64e7 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
>> @@ -424,16 +424,14 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
>> return 0;
>> }
>> -static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object
>> *obj,
>> - bool no_wait_gpu,
>> - bool should_writeback)
>> +static int i915_ttm_shrink(struct drm_i915_gem_object *obj, unsigned
>> int flags)
>> {
>> struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
>> struct i915_ttm_tt *i915_tt =
>> container_of(bo->ttm, typeof(*i915_tt), ttm);
>> struct ttm_operation_ctx ctx = {
>> .interruptible = true,
>> - .no_wait_gpu = no_wait_gpu,
>> + .no_wait_gpu = flags & I915_GEM_OBJECT_SHRINK_NO_GPU_WAIT,
>> };
>> struct ttm_placement place = {};
>> int ret;
>> @@ -467,7 +465,7 @@ static int i915_ttm_shrinker_release_pages(struct
>> drm_i915_gem_object *obj,
>> return ret;
>> }
>> - if (should_writeback)
>> + if (flags & I915_GEM_OBJECT_SHRINK_WRITEBACK)
>> __shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
>> return 0;
>> @@ -953,7 +951,7 @@ static const struct drm_i915_gem_object_ops
>> i915_gem_ttm_obj_ops = {
>> .get_pages = i915_ttm_get_pages,
>> .put_pages = i915_ttm_put_pages,
>> .truncate = i915_ttm_purge,
>> - .shrinker_release_pages = i915_ttm_shrinker_release_pages,
>> + .shrink = i915_ttm_shrink,
>> .adjust_lru = i915_ttm_adjust_lru,
>> .delayed_free = i915_ttm_delayed_free,
>>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: clean up shrinker_release_pages
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
(?)
(?)
@ 2022-01-05 10:29 ` Thomas Hellström (Intel)
-1 siblings, 0 replies; 12+ messages in thread
From: Thomas Hellström (Intel) @ 2022-01-05 10:29 UTC (permalink / raw)
To: Matthew Auld, intel-gfx; +Cc: dri-devel
Hi, Matthew
On 12/15/21 12:07, Matthew Auld wrote:
> Add some proper flags for the different modes, and shorten the name to
> something more snappy.
>
> Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
LGTM.
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-01-05 10:29 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-15 11:07 [PATCH 1/2] drm/i915: remove writeback hook Matthew Auld
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
2021-12-15 11:07 ` [PATCH 2/2] drm/i915: clean up shrinker_release_pages Matthew Auld
2021-12-15 11:07 ` [Intel-gfx] " Matthew Auld
2021-12-15 15:55 ` Tvrtko Ursulin
2021-12-15 15:55 ` [Intel-gfx] " Tvrtko Ursulin
2021-12-15 16:08 ` Matthew Auld
2021-12-15 16:08 ` [Intel-gfx] " Matthew Auld
2022-01-05 10:29 ` Thomas Hellström (Intel)
2021-12-15 12:14 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm/i915: remove writeback hook Patchwork
2021-12-15 12:38 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-12-15 14:53 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.