* [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker
@ 2021-12-10 11:05 Tvrtko Ursulin
2021-12-10 14:46 ` Thomas Hellström
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Tvrtko Ursulin @ 2021-12-10 11:05 UTC (permalink / raw)
To: Intel-gfx
Cc: Thomas Hellström, Michal Hocko, intel-gfx, Hugh Dickins,
dri-devel, Chris Wilson, Renato Pereyra, Matthew Auld,
Daniel Vetter, stable, Sushma Venkatesh Reddy
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
This effectively removes writeback which was added in 2d6692e642e7
("drm/i915: Start writeback from the shrinker").
Digging through the history it seems we went back and forth on the topic
of whether it would be safe a couple of times. See for instance
5537252b6b6d ("drm/i915: Invalidate our pages under memory pressure")
where Hugh Dickins has advised against it. I do not have enough expertise
in the memory management area so am hoping for expert input here.
Reason for proposing removal is that there are reports from the field
which indicate a sysetm wide deadlock (of a sort) implicating i915 doing
writeback at shrinking time.
Signature is a hung task notifier kicking in and task traces such as:
[ 247.030274] minijail-init D 0 1773 1770 0x80004082
[ 247.036419] Call Trace:
[ 247.039167] __schedule+0x57e/0x10d2
[ 247.043175] ? __schedule+0x586/0x10d2
[ 247.047381] ? _raw_spin_unlock+0xe/0x20
[ 247.051779] ? __queue_work+0x316/0x371
[ 247.056079] schedule+0x7c/0x9f
[ 247.059602] rwsem_down_write_slowpath+0x2ae/0x494
[ 247.064971] unregister_shrinker+0x20/0x65
[ 247.069562] deactivate_locked_super+0x38/0x88
[ 247.074538] cleanup_mnt+0xcc/0x10e
[ 247.078447] task_work_run+0x7d/0xa6
[ 247.082459] do_exit+0x23d/0x831
[ 247.086079] ? syscall_trace_enter+0x207/0x20e
[ 247.091055] do_group_exit+0x8d/0x9d
[ 247.095062] __x64_sys_exit_group+0x17/0x17
[ 247.099750] do_syscall_64+0x54/0x7e
[ 247.103758] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 246.876816] chrome D 0 1791 1785 0x00004080
[ 246.882965] Call Trace:
[ 246.885713] __schedule+0x57e/0x10d2
[ 246.889724] ? pcpu_alloc_area+0x25d/0x273
[ 246.894314] schedule+0x7c/0x9f
[ 246.897836] rwsem_down_write_slowpath+0x2ae/0x494
[ 246.903207] register_shrinker_prepared+0x19/0x48
[ 246.908479] ? test_single_super+0x10/0x10
[ 246.913071] sget_fc+0x1fc/0x20e
[ 246.916691] ? kill_litter_super+0x40/0x40
[ 246.921334] ? proc_apply_options+0x42/0x42
[ 246.926044] vfs_get_super+0x3a/0xdf
[ 246.930053] vfs_get_tree+0x2b/0xc3
[ 246.933965] fc_mount+0x12/0x39
[ 246.937492] pid_ns_prepare_proc+0x9d/0xc5
[ 246.942085] alloc_pid+0x275/0x289
[ 246.945900] copy_process+0x5e5/0xeea
[ 246.950006] _do_fork+0x95/0x303
[ 246.953628] __se_sys_clone+0x65/0x7f
[ 246.957735] do_syscall_64+0x54/0x7e
[ 246.961743] entry_SYSCALL_64_after_hwframe+0x44/0xa9
And finally the smoking gun in:
[ 247.383338] CPU: 3 PID: 88 Comm: kswapd0 Tainted: G U 5.4.154 #36
[ 247.383338] Hardware name: Google Delbin/Delbin, BIOS Google_Delbin.13672.57.0 02/09/2021
[ 247.383339] RIP: 0010:__rcu_read_lock+0x0/0x1a
[ 247.383339] Code: ff ff 0f 0b e9 61 fe ff ff 0f 0b e9 76 fe ff ff 0f 0b 49 8b 44 24 20 e9 59 ff ff ff 0f 0b e9 67 ff ff ff 0f 0b e9 1b ff ff ff <0f> 1f 44 00 00 55 48 89 e5 65 48 8b 04 25 80 5d 01 00 ff 80 f8 03
[ 247.383340] RSP: 0018:ffffb0aa0031b978 EFLAGS: 00000286
[ 247.383340] RAX: 0000000000000000 RBX: fffff6b944ca8040 RCX: fffff6b944ca8001
[ 247.383341] RDX: 0000000000000028 RSI: 0000000000000001 RDI: ffff8b52bc618c18
[ 247.383341] RBP: ffffb0aa0031b9d0 R08: 0000000000000000 R09: ffff8b52fb5f00d8
[ 247.383341] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 247.383342] R13: 61c8864680b583eb R14: 0000000000000001 R15: ffffb0aa0031b980
[ 247.383342] FS: 0000000000000000(0000) GS:ffff8b52fbf80000(0000) knlGS:0000000000000000
[ 247.383343] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 247.383343] CR2: 00007c78a400d680 CR3: 0000000120f46006 CR4: 0000000000762ee0
[ 247.383344] PKRU: 55555554
[ 247.383344] Call Trace:
[ 247.383345] find_get_entry+0x4c/0x116
[ 247.383345] find_lock_entry+0xc8/0xec
[ 247.383346] shmem_writeback+0x7b/0x163
[ 247.383346] i915_gem_shrink+0x302/0x40b
[ 247.383347] ? __intel_runtime_pm_get+0x22/0x82
[ 247.383347] i915_gem_shrinker_scan+0x86/0xa8
[ 247.383348] shrink_slab+0x272/0x48b
[ 247.383348] shrink_node+0x784/0xbea
[ 247.383348] ? rcu_read_unlock_special+0x66/0x15f
[ 247.383349] ? update_batch_size+0x78/0x78
[ 247.383349] kswapd+0x75c/0xa56
[ 247.383350] kthread+0x147/0x156
[ 247.383350] ? kswapd_run+0xb6/0xb6
[ 247.383351] ? kthread_blkcg+0x2e/0x2e
[ 247.383351] ret_from_fork+0x1f/0x40
You will notice the trace is from an older kernel, the problem being
reproducing the issue on latest upstream base is proving to be tricky due
other (unrelated) issues.
It is even tricky to repro on an older kernel, with it seemingly needing a
very specific game, transparent huge pages enabled and a specific memory
configuration.
However given the history on the topic I could find, assuming what I found
is not incomplete, suspicion on writeback being not the right thing to do
in general is still there. I would therefore like to have input from the
experts here.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Fixes: 2d6692e642e7 ("drm/i915: Start writeback from the shrinker")
References: 5537252b6b6d ("drm/i915: Invalidate our pages under memory pressure")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> #v1
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Cc: Renato Pereyra <renatopereyra@google.com>
Cc: intel-gfx@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v5.3+
---
drivers/gpu/drm/i915/gem/i915_gem_object.h | 2 -
.../gpu/drm/i915/gem/i915_gem_object_types.h | 4 +-
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 10 ----
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 49 -------------------
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 18 +++----
drivers/gpu/drm/i915/gem/i915_gem_shrinker.h | 1 -
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 6 +--
.../gpu/drm/i915/gem/selftests/huge_pages.c | 3 +-
8 files changed, 11 insertions(+), 82 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..352c7158a487 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
@@ -621,7 +620,6 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
unsigned int max_segment);
void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
bool dirty, bool backup);
-void __shmem_writeback(size_t size, struct address_space *mapping);
#ifdef CONFIG_MMU_NOTIFIER
static inline bool
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..e188d6137cc0 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -57,10 +57,8 @@ 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);
+ bool no_gpu_wait);
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_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index 49c6e55c68ce..52e975f57956 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..b4b8c921063e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -283,54 +283,6 @@ shmem_truncate(struct drm_i915_gem_object *obj)
return 0;
}
-void __shmem_writeback(size_t size, struct address_space *mapping)
-{
- struct writeback_control wbc = {
- .sync_mode = WB_SYNC_NONE,
- .nr_to_write = SWAP_CLUSTER_MAX,
- .range_start = 0,
- .range_end = LLONG_MAX,
- .for_reclaim = 1,
- };
- unsigned long i;
-
- /*
- * Leave mmapings intact (GTT will have been revoked on unbinding,
- * leaving only CPU mmapings around) and add those pages to the LRU
- * instead of invoking writeback so they are aged and paged out
- * as normal.
- */
-
- /* Begin writeback on each dirty page */
- for (i = 0; i < size >> PAGE_SHIFT; i++) {
- struct page *page;
-
- page = find_lock_page(mapping, i);
- if (!page)
- continue;
-
- if (!page_mapped(page) && clear_page_dirty_for_io(page)) {
- int ret;
-
- SetPageReclaim(page);
- ret = mapping->a_ops->writepage(page, &wbc);
- if (!PageWriteback(page))
- ClearPageReclaim(page);
- if (!ret)
- goto put;
- }
- unlock_page(page);
-put:
- put_page(page);
- }
-}
-
-static void
-shmem_writeback(struct drm_i915_gem_object *obj)
-{
- __shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
-}
-
void
__i915_gem_object_release_shmem(struct drm_i915_gem_object *obj,
struct sg_table *pages,
@@ -503,7 +455,6 @@ 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,
.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..99a38e016780 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -55,12 +55,11 @@ static bool unsafe_drop_pages(struct drm_i915_gem_object *obj,
return false;
}
-static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
+static int obj_invalidate(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);
+ !(flags & I915_SHRINK_ACTIVE));
switch (obj->mm.madv) {
case I915_MADV_DONTNEED:
@@ -70,8 +69,9 @@ static int try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags)
return 0;
}
- if (flags & I915_SHRINK_WRITEBACK)
- i915_gem_object_writeback(obj);
+ if (obj->base.filp)
+ invalidate_mapping_pages(file_inode(obj->base.filp)->i_mapping,
+ 0, (loff_t)-1);
return 0;
}
@@ -227,7 +227,7 @@ i915_gem_shrink(struct i915_gem_ww_ctx *ww,
}
if (!__i915_gem_object_put_pages(obj)) {
- if (!try_to_writeback(obj, shrink))
+ if (!obj_invalidate(obj, shrink))
count += obj->base.size >> PAGE_SHIFT;
}
if (!ww)
@@ -339,8 +339,7 @@ i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
&sc->nr_scanned,
I915_SHRINK_ACTIVE |
I915_SHRINK_BOUND |
- I915_SHRINK_UNBOUND |
- I915_SHRINK_WRITEBACK);
+ I915_SHRINK_UNBOUND);
}
}
@@ -361,8 +360,7 @@ i915_gem_shrinker_oom(struct notifier_block *nb, unsigned long event, void *ptr)
with_intel_runtime_pm(&i915->runtime_pm, wakeref)
freed_pages += i915_gem_shrink(NULL, i915, -1UL, NULL,
I915_SHRINK_BOUND |
- I915_SHRINK_UNBOUND |
- I915_SHRINK_WRITEBACK);
+ I915_SHRINK_UNBOUND);
/* Because we may be allocating inside our own driver, we cannot
* assert that there are no objects with pinned pages that are not
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
index 8512470f6fd6..789d6947f9b9 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
@@ -22,7 +22,6 @@ unsigned long i915_gem_shrink(struct i915_gem_ww_ctx *ww,
#define I915_SHRINK_BOUND BIT(1)
#define I915_SHRINK_ACTIVE BIT(2)
#define I915_SHRINK_VMAPS BIT(3)
-#define I915_SHRINK_WRITEBACK BIT(4)
unsigned long i915_gem_shrink_all(struct drm_i915_private *i915);
void i915_gem_driver_register__shrinker(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 218a9b3037c7..b7ca7b66afe7 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -425,8 +425,7 @@ int i915_ttm_purge(struct drm_i915_gem_object *obj)
}
static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
- bool no_wait_gpu,
- bool should_writeback)
+ bool no_wait_gpu)
{
struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
struct i915_ttm_tt *i915_tt =
@@ -467,9 +466,6 @@ static int i915_ttm_shrinker_release_pages(struct drm_i915_gem_object *obj,
return ret;
}
- if (should_writeback)
- __shmem_writeback(obj->base.size, i915_tt->filp->f_mapping);
-
return 0;
}
diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
index c69c7d45aabc..24bbf4d6a63d 100644
--- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
+++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
@@ -1647,8 +1647,7 @@ static int igt_shrink_thp(void *arg)
i915_gem_shrink(NULL, i915, -1UL, NULL,
I915_SHRINK_BOUND |
I915_SHRINK_UNBOUND |
- I915_SHRINK_ACTIVE |
- I915_SHRINK_WRITEBACK);
+ I915_SHRINK_ACTIVE);
if (should_swap == i915_gem_object_has_pages(obj)) {
pr_err("unexpected pages mismatch, should_swap=%s\n",
yesno(should_swap));
--
2.32.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker
2021-12-10 11:05 [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker Tvrtko Ursulin
@ 2021-12-10 14:46 ` Thomas Hellström
2021-12-10 15:36 ` Tvrtko Ursulin
2021-12-10 15:02 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Thomas Hellström @ 2021-12-10 14:46 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx
Cc: Michal Hocko, Hugh Dickins, dri-devel, Chris Wilson,
Renato Pereyra, Matthew Auld, Daniel Vetter, stable,
Sushma Venkatesh Reddy
On Fri, 2021-12-10 at 11:05 +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> This effectively removes writeback which was added in 2d6692e642e7
> ("drm/i915: Start writeback from the shrinker").
>
> Digging through the history it seems we went back and forth on the
> topic
> of whether it would be safe a couple of times. See for instance
> 5537252b6b6d ("drm/i915: Invalidate our pages under memory pressure")
> where Hugh Dickins has advised against it. I do not have enough
> expertise
> in the memory management area so am hoping for expert input here.
>
> Reason for proposing removal is that there are reports from the field
> which indicate a sysetm wide deadlock (of a sort) implicating i915
> doing
> writeback at shrinking time.
>
> Signature is a hung task notifier kicking in and task traces such as:
It would be interesting to see what exactly the find_get_entry is
blocked on. The other two tasks are blocked on the shrinker_rwsem which
is held by i915. If it's indeed a deadlock with either of those two,
then the fix Chris is working on for an unrelated issue we discovered
with shrinking would move out the writeback call from the
shrinker_rwsem and resolve this, but if i915 is in turn deadlocking
with another process and these two are just hanging waiting for the
shrinker_rwsem, we would still have other issues.
Do you by any chance have the list of the locks held by the system at
this point?
/Thomas
>
> [ 247.030274] minijail-init D 0 1773 1770 0x80004082
> [ 247.036419] Call Trace:
> [ 247.039167] __schedule+0x57e/0x10d2
> [ 247.043175] ? __schedule+0x586/0x10d2
> [ 247.047381] ? _raw_spin_unlock+0xe/0x20
> [ 247.051779] ? __queue_work+0x316/0x371
> [ 247.056079] schedule+0x7c/0x9f
> [ 247.059602] rwsem_down_write_slowpath+0x2ae/0x494
> [ 247.064971] unregister_shrinker+0x20/0x65
> [ 247.069562] deactivate_locked_super+0x38/0x88
> [ 247.074538] cleanup_mnt+0xcc/0x10e
> [ 247.078447] task_work_run+0x7d/0xa6
> [ 247.082459] do_exit+0x23d/0x831
> [ 247.086079] ? syscall_trace_enter+0x207/0x20e
> [ 247.091055] do_group_exit+0x8d/0x9d
> [ 247.095062] __x64_sys_exit_group+0x17/0x17
> [ 247.099750] do_syscall_64+0x54/0x7e
> [ 247.103758] entry_SYSCALL_64_after_hwframe+0x44/0xa9
>
> [ 246.876816] chrome D 0 1791 1785 0x00004080
> [ 246.882965] Call Trace:
> [ 246.885713] __schedule+0x57e/0x10d2
> [ 246.889724] ? pcpu_alloc_area+0x25d/0x273
> [ 246.894314] schedule+0x7c/0x9f
> [ 246.897836] rwsem_down_write_slowpath+0x2ae/0x494
> [ 246.903207] register_shrinker_prepared+0x19/0x48
> [ 246.908479] ? test_single_super+0x10/0x10
> [ 246.913071] sget_fc+0x1fc/0x20e
> [ 246.916691] ? kill_litter_super+0x40/0x40
> [ 246.921334] ? proc_apply_options+0x42/0x42
> [ 246.926044] vfs_get_super+0x3a/0xdf
> [ 246.930053] vfs_get_tree+0x2b/0xc3
> [ 246.933965] fc_mount+0x12/0x39
> [ 246.937492] pid_ns_prepare_proc+0x9d/0xc5
> [ 246.942085] alloc_pid+0x275/0x289
> [ 246.945900] copy_process+0x5e5/0xeea
> [ 246.950006] _do_fork+0x95/0x303
> [ 246.953628] __se_sys_clone+0x65/0x7f
> [ 246.957735] do_syscall_64+0x54/0x7e
> [ 246.961743] entry_SYSCALL_64_after_hwframe+0x44/0xa9
>
> And finally the smoking gun in:
>
> [ 247.383338] CPU: 3 PID: 88 Comm: kswapd0 Tainted: G
> U 5.4.154 #36
> [ 247.383338] Hardware name: Google Delbin/Delbin, BIOS
> Google_Delbin.13672.57.0 02/09/2021
> [ 247.383339] RIP: 0010:__rcu_read_lock+0x0/0x1a
> [ 247.383339] Code: ff ff 0f 0b e9 61 fe ff ff 0f 0b e9 76 fe ff ff
> 0f 0b 49 8b 44 24 20 e9 59 ff ff ff 0f 0b e9 67 ff ff ff 0f 0b e9 1b
> ff ff ff <0f> 1f 44 00 00 55 48 89 e5 65 48 8b 04 25 80 5d 01 00 ff
> 80 f8 03
> [ 247.383340] RSP: 0018:ffffb0aa0031b978 EFLAGS: 00000286
> [ 247.383340] RAX: 0000000000000000 RBX: fffff6b944ca8040 RCX:
> fffff6b944ca8001
> [ 247.383341] RDX: 0000000000000028 RSI: 0000000000000001 RDI:
> ffff8b52bc618c18
> [ 247.383341] RBP: ffffb0aa0031b9d0 R08: 0000000000000000 R09:
> ffff8b52fb5f00d8
> [ 247.383341] R10: 0000000000000000 R11: 0000000000000000 R12:
> 0000000000000000
> [ 247.383342] R13: 61c8864680b583eb R14: 0000000000000001 R15:
> ffffb0aa0031b980
> [ 247.383342] FS: 0000000000000000(0000) GS:ffff8b52fbf80000(0000)
> knlGS:0000000000000000
> [ 247.383343] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 247.383343] CR2: 00007c78a400d680 CR3: 0000000120f46006 CR4:
> 0000000000762ee0
> [ 247.383344] PKRU: 55555554
> [ 247.383344] Call Trace:
> [ 247.383345] find_get_entry+0x4c/0x116
> [ 247.383345] find_lock_entry+0xc8/0xec
> [ 247.383346] shmem_writeback+0x7b/0x163
> [ 247.383346] i915_gem_shrink+0x302/0x40b
> [ 247.383347] ? __intel_runtime_pm_get+0x22/0x82
> [ 247.383347] i915_gem_shrinker_scan+0x86/0xa8
> [ 247.383348] shrink_slab+0x272/0x48b
> [ 247.383348] shrink_node+0x784/0xbea
> [ 247.383348] ? rcu_read_unlock_special+0x66/0x15f
> [ 247.383349] ? update_batch_size+0x78/0x78
> [ 247.383349] kswapd+0x75c/0xa56
> [ 247.383350] kthread+0x147/0x156
> [ 247.383350] ? kswapd_run+0xb6/0xb6
> [ 247.383351] ? kthread_blkcg+0x2e/0x2e
> [ 247.383351] ret_from_fork+0x1f/0x40
>
> You will notice the trace is from an older kernel, the problem being
> reproducing the issue on latest upstream base is proving to be tricky
> due
> other (unrelated) issues.
>
> It is even tricky to repro on an older kernel, with it seemingly
> needing a
> very specific game, transparent huge pages enabled and a specific
> memory
> configuration.
>
> However given the history on the topic I could find, assuming what I
> found
> is not incomplete, suspicion on writeback being not the right thing
> to do
> in general is still there. I would therefore like to have input from
> the
> experts here.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Fixes: 2d6692e642e7 ("drm/i915: Start writeback from the shrinker")
> References: 5537252b6b6d ("drm/i915: Invalidate our pages under
> memory pressure")
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Matthew Auld <matthew.auld@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> #v1
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Hugh Dickins <hughd@google.com>
> Cc: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
> Cc: Renato Pereyra <renatopereyra@google.com>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: <stable@vger.kernel.org> # v5.3+
> ---
> drivers/gpu/drm/i915/gem/i915_gem_object.h | 2 -
> .../gpu/drm/i915/gem/i915_gem_object_types.h | 4 +-
> drivers/gpu/drm/i915/gem/i915_gem_pages.c | 10 ----
> drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 49 -----------------
> --
> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 18 +++----
> drivers/gpu/drm/i915/gem/i915_gem_shrinker.h | 1 -
> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 6 +--
> .../gpu/drm/i915/gem/selftests/huge_pages.c | 3 +-
> 8 files changed, 11 insertions(+), 82 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..352c7158a487 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
> @@ -621,7 +620,6 @@ int shmem_sg_alloc_table(struct drm_i915_private
> *i915, struct sg_table *st,
> unsigned int max_segment);
> void shmem_sg_free_table(struct sg_table *st, struct address_space
> *mapping,
> bool dirty, bool backup);
> -void __shmem_writeback(size_t size, struct address_space *mapping);
>
> #ifdef CONFIG_MMU_NOTIFIER
> static inline bool
> 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..e188d6137cc0 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
> @@ -57,10 +57,8 @@ 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);
> + bool no_gpu_wait);
>
> 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_pages.c
> b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
> index 49c6e55c68ce..52e975f57956 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..b4b8c921063e 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -283,54 +283,6 @@ shmem_truncate(struct drm_i915_gem_object *obj)
> return 0;
> }
>
> -void __shmem_writeback(size_t size, struct address_space *mapping)
> -{
> - struct writeback_control wbc = {
> - .sync_mode = WB_SYNC_NONE,
> - .nr_to_write = SWAP_CLUSTER_MAX,
> - .range_start = 0,
> - .range_end = LLONG_MAX,
> - .for_reclaim = 1,
> - };
> - unsigned long i;
> -
> - /*
> - * Leave mmapings intact (GTT will have been revoked on
> unbinding,
> - * leaving only CPU mmapings around) and add those pages to
> the LRU
> - * instead of invoking writeback so they are aged and paged
> out
> - * as normal.
> - */
> -
> - /* Begin writeback on each dirty page */
> - for (i = 0; i < size >> PAGE_SHIFT; i++) {
> - struct page *page;
> -
> - page = find_lock_page(mapping, i);
> - if (!page)
> - continue;
> -
> - if (!page_mapped(page) &&
> clear_page_dirty_for_io(page)) {
> - int ret;
> -
> - SetPageReclaim(page);
> - ret = mapping->a_ops->writepage(page, &wbc);
> - if (!PageWriteback(page))
> - ClearPageReclaim(page);
> - if (!ret)
> - goto put;
> - }
> - unlock_page(page);
> -put:
> - put_page(page);
> - }
> -}
> -
> -static void
> -shmem_writeback(struct drm_i915_gem_object *obj)
> -{
> - __shmem_writeback(obj->base.size, obj->base.filp->f_mapping);
> -}
> -
> void
> __i915_gem_object_release_shmem(struct drm_i915_gem_object *obj,
> struct sg_table *pages,
> @@ -503,7 +455,6 @@ 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,
>
> .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..99a38e016780 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> @@ -55,12 +55,11 @@ static bool unsafe_drop_pages(struct
> drm_i915_gem_object *obj,
> return false;
> }
>
> -static int try_to_writeback(struct drm_i915_gem_object *obj,
> unsigned int flags)
> +static int obj_invalidate(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);
> + !(flags &
> I915_SHRINK_ACTIVE));
>
> switch (obj->mm.madv) {
> case I915_MADV_DONTNEED:
> @@ -70,8 +69,9 @@ static int try_to_writeback(struct
> drm_i915_gem_object *obj, unsigned int flags)
> return 0;
> }
>
> - if (flags & I915_SHRINK_WRITEBACK)
> - i915_gem_object_writeback(obj);
> + if (obj->base.filp)
> + invalidate_mapping_pages(file_inode(obj->base.filp)-
> >i_mapping,
> + 0, (loff_t)-1);
>
> return 0;
> }
> @@ -227,7 +227,7 @@ i915_gem_shrink(struct i915_gem_ww_ctx *ww,
> }
>
> if
> (!__i915_gem_object_put_pages(obj)) {
> - if (!try_to_writeback(obj,
> shrink))
> + if (!obj_invalidate(obj,
> shrink))
> count += obj-
> >base.size >> PAGE_SHIFT;
> }
> if (!ww)
> @@ -339,8 +339,7 @@ i915_gem_shrinker_scan(struct shrinker *shrinker,
> struct shrink_control *sc)
> &sc->nr_scanned,
> I915_SHRINK_ACTIVE |
> I915_SHRINK_BOUND |
> - I915_SHRINK_UNBOUND
> |
> -
> I915_SHRINK_WRITEBACK);
> +
> I915_SHRINK_UNBOUND);
> }
> }
>
> @@ -361,8 +360,7 @@ i915_gem_shrinker_oom(struct notifier_block *nb,
> unsigned long event, void *ptr)
> with_intel_runtime_pm(&i915->runtime_pm, wakeref)
> freed_pages += i915_gem_shrink(NULL, i915, -1UL,
> NULL,
> I915_SHRINK_BOUND |
> - I915_SHRINK_UNBOUND |
> -
> I915_SHRINK_WRITEBACK);
> + I915_SHRINK_UNBOUND);
>
> /* Because we may be allocating inside our own driver, we
> cannot
> * assert that there are no objects with pinned pages that
> are not
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
> b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
> index 8512470f6fd6..789d6947f9b9 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
> @@ -22,7 +22,6 @@ unsigned long i915_gem_shrink(struct
> i915_gem_ww_ctx *ww,
> #define I915_SHRINK_BOUND BIT(1)
> #define I915_SHRINK_ACTIVE BIT(2)
> #define I915_SHRINK_VMAPS BIT(3)
> -#define I915_SHRINK_WRITEBACK BIT(4)
>
> unsigned long i915_gem_shrink_all(struct drm_i915_private *i915);
> void i915_gem_driver_register__shrinker(struct drm_i915_private
> *i915);
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> index 218a9b3037c7..b7ca7b66afe7 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> @@ -425,8 +425,7 @@ int i915_ttm_purge(struct drm_i915_gem_object
> *obj)
> }
>
> static int i915_ttm_shrinker_release_pages(struct
> drm_i915_gem_object *obj,
> - bool no_wait_gpu,
> - bool should_writeback)
> + bool no_wait_gpu)
> {
> struct ttm_buffer_object *bo = i915_gem_to_ttm(obj);
> struct i915_ttm_tt *i915_tt =
> @@ -467,9 +466,6 @@ static int i915_ttm_shrinker_release_pages(struct
> drm_i915_gem_object *obj,
> return ret;
> }
>
> - if (should_writeback)
> - __shmem_writeback(obj->base.size, i915_tt->filp-
> >f_mapping);
> -
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> index c69c7d45aabc..24bbf4d6a63d 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> @@ -1647,8 +1647,7 @@ static int igt_shrink_thp(void *arg)
> i915_gem_shrink(NULL, i915, -1UL, NULL,
> I915_SHRINK_BOUND |
> I915_SHRINK_UNBOUND |
> - I915_SHRINK_ACTIVE |
> - I915_SHRINK_WRITEBACK);
> + I915_SHRINK_ACTIVE);
> if (should_swap == i915_gem_object_has_pages(obj)) {
> pr_err("unexpected pages mismatch, should_swap=%s\n",
> yesno(should_swap));
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Stop doing writeback from the shrinker
2021-12-10 11:05 [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker Tvrtko Ursulin
2021-12-10 14:46 ` Thomas Hellström
@ 2021-12-10 15:02 ` Patchwork
2021-12-10 15:03 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-12-10 15:02 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Stop doing writeback from the shrinker
URL : https://patchwork.freedesktop.org/series/97856/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
ea5ef6ccbc42 drm/i915: Stop doing writeback from the shrinker
-:9: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 2d6692e642e7 ("drm/i915: Start writeback from the shrinker")'
#9:
This effectively removes writeback which was added in 2d6692e642e7
-:14: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 5537252b6b6d ("drm/i915: Invalidate our pages under memory pressure")'
#14:
5537252b6b6d ("drm/i915: Invalidate our pages under memory pressure")
-:281: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#281: FILE: drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:72:
+ if (obj->base.filp)$
-:281: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 16)
#281: FILE: drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:72:
+ if (obj->base.filp)
+ invalidate_mapping_pages(file_inode(obj->base.filp)->i_mapping,
total: 2 errors, 2 warnings, 0 checks, 187 lines checked
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Stop doing writeback from the shrinker
2021-12-10 11:05 [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker Tvrtko Ursulin
2021-12-10 14:46 ` Thomas Hellström
2021-12-10 15:02 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2021-12-10 15:03 ` Patchwork
2021-12-10 15:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-12-11 10:59 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-12-10 15:03 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Stop doing writeback from the shrinker
URL : https://patchwork.freedesktop.org/series/97856/
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] 7+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Stop doing writeback from the shrinker
2021-12-10 11:05 [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker Tvrtko Ursulin
` (2 preceding siblings ...)
2021-12-10 15:03 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2021-12-10 15:33 ` Patchwork
2021-12-11 10:59 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-12-10 15:33 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 3882 bytes --]
== Series Details ==
Series: drm/i915: Stop doing writeback from the shrinker
URL : https://patchwork.freedesktop.org/series/97856/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_10988 -> Patchwork_21821
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/index.html
Participating hosts (45 -> 34)
------------------------------
Missing (11): fi-ilk-m540 bat-dg1-6 fi-tgl-u2 bat-dg1-5 fi-hsw-4200u fi-bsw-cyan bat-adlp-6 bat-adlp-4 fi-ctg-p8600 bat-jsl-2 fi-bdw-samus
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_21821:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live@hangcheck:
- {fi-jsl-1}: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/fi-jsl-1/igt@i915_selftest@live@hangcheck.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/fi-jsl-1/igt@i915_selftest@live@hangcheck.html
Known issues
------------
Here are the changes found in Patchwork_21821 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_cs_nop@sync-fork-compute0:
- fi-snb-2600: NOTRUN -> [SKIP][3] ([fdo#109271]) +17 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/fi-snb-2600/igt@amdgpu/amd_cs_nop@sync-fork-compute0.html
* igt@gem_flink_basic@bad-flink:
- fi-skl-6600u: [PASS][4] -> [FAIL][5] ([i915#4547])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
* igt@kms_frontbuffer_tracking@basic:
- fi-cml-u2: [PASS][6] -> [DMESG-WARN][7] ([i915#4269])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
#### Possible fixes ####
* igt@i915_selftest@live@hangcheck:
- fi-snb-2600: [INCOMPLETE][8] ([i915#3921]) -> [PASS][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/fi-snb-2600/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
[i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
[i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
[i915#3970]: https://gitlab.freedesktop.org/drm/intel/issues/3970
[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
Build changes
-------------
* Linux: CI_DRM_10988 -> Patchwork_21821
CI-20190529: 20190529
CI_DRM_10988: 24a4093e85c578905d39ebe14225dbeb5b6f07d5 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6305: 136258e86a093fdb50a7a341de1c09ac9a076fea @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_21821: ea5ef6ccbc4274f0769e96b613b267c4828d151c @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
ea5ef6ccbc42 drm/i915: Stop doing writeback from the shrinker
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/index.html
[-- Attachment #2: Type: text/html, Size: 4403 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker
2021-12-10 14:46 ` Thomas Hellström
@ 2021-12-10 15:36 ` Tvrtko Ursulin
0 siblings, 0 replies; 7+ messages in thread
From: Tvrtko Ursulin @ 2021-12-10 15:36 UTC (permalink / raw)
To: Thomas Hellström, Intel-gfx
Cc: Michal Hocko, Hugh Dickins, dri-devel, Chris Wilson,
Renato Pereyra, Matthew Auld, Daniel Vetter, stable,
Sushma Venkatesh Reddy
On 10/12/2021 14:46, Thomas Hellström wrote:
> On Fri, 2021-12-10 at 11:05 +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> This effectively removes writeback which was added in 2d6692e642e7
>> ("drm/i915: Start writeback from the shrinker").
>>
>> Digging through the history it seems we went back and forth on the
>> topic
>> of whether it would be safe a couple of times. See for instance
>> 5537252b6b6d ("drm/i915: Invalidate our pages under memory pressure")
>> where Hugh Dickins has advised against it. I do not have enough
>> expertise
>> in the memory management area so am hoping for expert input here.
>>
>> Reason for proposing removal is that there are reports from the field
>> which indicate a sysetm wide deadlock (of a sort) implicating i915
>> doing
>> writeback at shrinking time.
>>
>> Signature is a hung task notifier kicking in and task traces such as:
>
> It would be interesting to see what exactly the find_get_entry is
> blocked on. The other two tasks are blocked on the shrinker_rwsem which
> is held by i915. If it's indeed a deadlock with either of those two,
It may indeed be a livelock instead of a deadlock. I have received a
newer trace and it indeed shows kswapd in running state. But no progress
in 120s and dead machine sounded like too suspicious it could happen
with just a gaming workload so I assumed a more serious issue than just
severe memory pressure.
> then the fix Chris is working on for an unrelated issue we discovered
> with shrinking would move out the writeback call from the
> shrinker_rwsem and resolve this, but if i915 is in turn deadlocking
> with another process and these two are just hanging waiting for the
> shrinker_rwsem, we would still have other issues.
Presumably this would involve an extra worker and tracking on a list or
something?
Otherwise my main hope really was to get a verdict from memory
management experts on pros & cons of doing writeback from the driver in
any flavour.
> Do you by any chance have the list of the locks held by the system at
> this point?
No, but maybe Renato you could also collect "echo d" and "echo m" to
sysrq-trigger when things go bad?
Regards,
Tvrtko
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Stop doing writeback from the shrinker
2021-12-10 11:05 [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker Tvrtko Ursulin
` (3 preceding siblings ...)
2021-12-10 15:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2021-12-11 10:59 ` Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-12-11 10:59 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 30271 bytes --]
== Series Details ==
Series: drm/i915: Stop doing writeback from the shrinker
URL : https://patchwork.freedesktop.org/series/97856/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_10988_full -> Patchwork_21821_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_21821_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_21821_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_21821_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_async_flips@async-flip-with-page-flip-events:
- shard-skl: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl8/igt@kms_async_flips@async-flip-with-page-flip-events.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl6/igt@kms_async_flips@async-flip-with-page-flip-events.html
Known issues
------------
Here are the changes found in Patchwork_21821_full that come from known issues:
### CI changes ###
#### Issues hit ####
* boot:
- shard-glk: ([PASS][3], [PASS][4], [PASS][5], [PASS][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27]) -> ([PASS][28], [PASS][29], [PASS][30], [PASS][31], [PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [FAIL][37], [PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44], [PASS][45], [PASS][46], [PASS][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [PASS][52]) ([i915#4392])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk9/boot.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk9/boot.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk8/boot.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk8/boot.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk8/boot.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk7/boot.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk7/boot.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk7/boot.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk6/boot.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk6/boot.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk6/boot.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk5/boot.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk5/boot.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk5/boot.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk4/boot.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk4/boot.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk4/boot.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk3/boot.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk3/boot.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk3/boot.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk2/boot.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk2/boot.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk2/boot.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk1/boot.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk1/boot.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk1/boot.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk1/boot.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk2/boot.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk2/boot.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk2/boot.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk3/boot.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk3/boot.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk3/boot.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk4/boot.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk4/boot.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk4/boot.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk5/boot.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk5/boot.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk5/boot.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk6/boot.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk6/boot.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk6/boot.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk7/boot.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk7/boot.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk7/boot.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk8/boot.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk8/boot.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk9/boot.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk9/boot.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk9/boot.html
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@engines-hostile-preempt:
- shard-snb: NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#1099])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-snb6/igt@gem_ctx_persistence@engines-hostile-preempt.html
* igt@gem_ctx_sseu@engines:
- shard-tglb: NOTRUN -> [SKIP][54] ([i915#280])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-tglb7/igt@gem_ctx_sseu@engines.html
* igt@gem_eio@unwedge-stress:
- shard-tglb: [PASS][55] -> [TIMEOUT][56] ([i915#3063] / [i915#3648])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-tglb6/igt@gem_eio@unwedge-stress.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-tglb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_capture@pi@rcs0:
- shard-skl: [PASS][57] -> [INCOMPLETE][58] ([i915#4547])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl8/igt@gem_exec_capture@pi@rcs0.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl6/igt@gem_exec_capture@pi@rcs0.html
* igt@gem_exec_fair@basic-pace@bcs0:
- shard-iclb: [PASS][59] -> [FAIL][60] ([i915#2842])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-iclb7/igt@gem_exec_fair@basic-pace@bcs0.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-iclb4/igt@gem_exec_fair@basic-pace@bcs0.html
* igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][61] ([i915#2842]) +1 similar issue
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html
* igt@gem_lmem_swapping@verify:
- shard-apl: NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#4613])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl7/igt@gem_lmem_swapping@verify.html
- shard-kbl: NOTRUN -> [SKIP][63] ([fdo#109271] / [i915#4613])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl7/igt@gem_lmem_swapping@verify.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [PASS][64] -> [FAIL][65] ([i915#644])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk8/igt@gem_ppgtt@flink-and-close-vma-leak.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk5/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@gem_softpin@allocator-evict-all-engines:
- shard-glk: [PASS][66] -> [FAIL][67] ([i915#4171])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk8/igt@gem_softpin@allocator-evict-all-engines.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk1/igt@gem_softpin@allocator-evict-all-engines.html
* igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-kbl: NOTRUN -> [SKIP][68] ([fdo#109271] / [i915#3777]) +2 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl1/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-apl: NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#3777])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl7/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
- shard-kbl: NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#3886]) +6 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl7/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][71] ([fdo#109271] / [i915#3886]) +5 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl2/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_cdclk@mode-transition:
- shard-apl: NOTRUN -> [SKIP][72] ([fdo#109271]) +99 similar issues
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl2/igt@kms_cdclk@mode-transition.html
* igt@kms_chamelium@vga-hpd-without-ddc:
- shard-kbl: NOTRUN -> [SKIP][73] ([fdo#109271] / [fdo#111827]) +10 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl1/igt@kms_chamelium@vga-hpd-without-ddc.html
* igt@kms_color_chamelium@pipe-a-degamma:
- shard-snb: NOTRUN -> [SKIP][74] ([fdo#109271] / [fdo#111827]) +2 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-snb6/igt@kms_color_chamelium@pipe-a-degamma.html
* igt@kms_color_chamelium@pipe-b-ctm-0-75:
- shard-apl: NOTRUN -> [SKIP][75] ([fdo#109271] / [fdo#111827]) +8 similar issues
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl2/igt@kms_color_chamelium@pipe-b-ctm-0-75.html
* igt@kms_content_protection@legacy:
- shard-kbl: NOTRUN -> [TIMEOUT][76] ([i915#1319])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl1/igt@kms_content_protection@legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-skl: [PASS][77] -> [FAIL][78] ([i915#2346])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-toggle:
- shard-iclb: [PASS][79] -> [FAIL][80] ([i915#2346])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-iclb4/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
- shard-skl: [PASS][81] -> [FAIL][82] ([i915#79]) +1 similar issue
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl4/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl8/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-skl: [PASS][83] -> [FAIL][84] ([i915#2122])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
- shard-apl: [PASS][85] -> [DMESG-WARN][86] ([i915#180]) +2 similar issues
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
* igt@kms_flip@flip-vs-suspend@c-dp1:
- shard-kbl: [PASS][87] -> [INCOMPLETE][88] ([i915#636])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-kbl4/igt@kms_flip@flip-vs-suspend@c-dp1.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl3/igt@kms_flip@flip-vs-suspend@c-dp1.html
* igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-yf-ccs:
- shard-apl: NOTRUN -> [DMESG-WARN][89] ([i915#1226])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl8/igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-yf-ccs.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
- shard-snb: NOTRUN -> [SKIP][90] ([fdo#109271]) +42 similar issues
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-snb6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
- shard-kbl: NOTRUN -> [SKIP][91] ([fdo#109271]) +146 similar issues
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl7/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-skl: [PASS][92] -> [FAIL][93] ([i915#1188])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_pipe_crc_basic@read-crc-pipe-d:
- shard-apl: NOTRUN -> [SKIP][94] ([fdo#109271] / [i915#533])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl8/igt@kms_pipe_crc_basic@read-crc-pipe-d.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
- shard-apl: NOTRUN -> [FAIL][95] ([i915#265])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl2/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
* igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
- shard-kbl: NOTRUN -> [FAIL][96] ([fdo#108145] / [i915#265]) +1 similar issue
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl2/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4:
- shard-apl: NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#658]) +2 similar issues
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html
* igt@kms_psr2_sf@plane-move-sf-dmg-area-3:
- shard-kbl: NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#658]) +4 similar issues
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl2/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html
* igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-kbl: [PASS][99] -> [DMESG-WARN][100] ([i915#180]) +1 similar issue
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-kbl1/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl6/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
* igt@kms_vblank@pipe-d-wait-idle:
- shard-kbl: NOTRUN -> [SKIP][101] ([fdo#109271] / [i915#533]) +2 similar issues
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl1/igt@kms_vblank@pipe-d-wait-idle.html
* igt@perf_pmu@most-busy-idle-check-all@vecs0:
- shard-skl: [PASS][102] -> [DMESG-WARN][103] ([i915#1982])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl8/igt@perf_pmu@most-busy-idle-check-all@vecs0.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl6/igt@perf_pmu@most-busy-idle-check-all@vecs0.html
#### Possible fixes ####
* igt@drm_read@short-buffer-block:
- {shard-rkl}: [SKIP][104] ([i915#4098]) -> [PASS][105]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@drm_read@short-buffer-block.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@drm_read@short-buffer-block.html
* igt@drm_read@short-buffer-wakeup:
- {shard-rkl}: [SKIP][106] ([i915#1845] / [i915#4098]) -> [PASS][107]
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@drm_read@short-buffer-wakeup.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@drm_read@short-buffer-wakeup.html
* igt@fbdev@pan:
- {shard-rkl}: [SKIP][108] ([i915#2582]) -> [PASS][109]
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@fbdev@pan.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@fbdev@pan.html
* igt@gem_eio@in-flight-suspend:
- shard-kbl: [DMESG-WARN][110] ([i915#180]) -> [PASS][111] +3 similar issues
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-kbl6/igt@gem_eio@in-flight-suspend.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl2/igt@gem_eio@in-flight-suspend.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][112] ([i915#2842]) -> [PASS][113] +1 similar issue
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-sync@rcs0:
- shard-kbl: [SKIP][114] ([fdo#109271]) -> [PASS][115]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-kbl3/igt@gem_exec_fair@basic-sync@rcs0.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-kbl6/igt@gem_exec_fair@basic-sync@rcs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][116] ([i915#2849]) -> [PASS][117]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@i915_pm_backlight@fade_with_suspend:
- {shard-rkl}: [SKIP][118] ([i915#3012]) -> [PASS][119]
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@i915_pm_backlight@fade_with_suspend.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@i915_pm_backlight@fade_with_suspend.html
* igt@i915_pm_rpm@gem-pread:
- {shard-rkl}: [SKIP][120] ([fdo#109308]) -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@i915_pm_rpm@gem-pread.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@i915_pm_rpm@gem-pread.html
* igt@i915_selftest@live@hangcheck:
- shard-snb: [INCOMPLETE][122] ([i915#3921]) -> [PASS][123]
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-snb6/igt@i915_selftest@live@hangcheck.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-snb6/igt@i915_selftest@live@hangcheck.html
* igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs:
- {shard-rkl}: ([SKIP][124], [SKIP][125]) ([i915#1845]) -> [PASS][126] +3 similar issues
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-4/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs.html
* igt@kms_color@pipe-b-degamma:
- {shard-rkl}: [SKIP][127] ([i915#1149] / [i915#1849] / [i915#4070]) -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_color@pipe-b-degamma.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_color@pipe-b-degamma.html
* igt@kms_color@pipe-c-invalid-ctm-matrix-sizes:
- {shard-rkl}: ([PASS][129], [SKIP][130]) ([i915#4070]) -> [PASS][131]
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-4/igt@kms_color@pipe-c-invalid-ctm-matrix-sizes.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-6/igt@kms_color@pipe-c-invalid-ctm-matrix-sizes.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-4/igt@kms_color@pipe-c-invalid-ctm-matrix-sizes.html
* igt@kms_cursor_crc@pipe-a-cursor-dpms:
- {shard-rkl}: ([SKIP][132], [SKIP][133]) ([fdo#112022] / [i915#4070]) -> [PASS][134]
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-4/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
* igt@kms_cursor_crc@pipe-b-cursor-64x64-random:
- {shard-rkl}: [SKIP][135] ([fdo#112022] / [i915#4070]) -> [PASS][136] +3 similar issues
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_cursor_crc@pipe-b-cursor-64x64-random.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_cursor_crc@pipe-b-cursor-64x64-random.html
* igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge:
- {shard-rkl}: [SKIP][137] ([i915#1849] / [i915#4070]) -> [PASS][138] +3 similar issues
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge.html
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge.html
* igt@kms_cursor_legacy@cursora-vs-flipa-legacy:
- {shard-rkl}: [SKIP][139] ([fdo#111825] / [i915#4070]) -> [PASS][140] +4 similar issues
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipa-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic:
- {shard-rkl}: ([SKIP][141], [SKIP][142]) ([fdo#111825] / [i915#4070]) -> [PASS][143]
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-4/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html
* igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled:
- {shard-rkl}: [SKIP][144] ([fdo#111314]) -> [PASS][145] +7 similar issues
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled.html
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled.html
* igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
- shard-skl: [FAIL][146] ([i915#2122]) -> [PASS][147] +1 similar issue
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl7/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render:
- {shard-rkl}: [SKIP][148] ([i915#1849]) -> [PASS][149] +16 similar issues
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render:
- {shard-rkl}: ([SKIP][150], [SKIP][151]) ([i915#1849] / [i915#4098]) -> [PASS][152]
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- shard-apl: [DMESG-WARN][153] ([i915#180]) -> [PASS][154] +2 similar issues
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-apl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-apl8/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
* igt@kms_plane@plane-position-covered@pipe-b-planes:
- {shard-rkl}: [SKIP][155] ([i915#3558]) -> [PASS][156] +1 similar issue
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_plane@plane-position-covered@pipe-b-planes.html
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_plane@plane-position-covered@pipe-b-planes.html
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl: [FAIL][157] ([fdo#108145] / [i915#265]) -> [PASS][158] +1 similar issue
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
* igt@kms_plane_cursor@pipe-a-primary-size-128:
- {shard-rkl}: [SKIP][159] ([i915#1845]) -> [PASS][160] +12 similar issues
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_plane_cursor@pipe-a-primary-size-128.html
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_plane_cursor@pipe-a-primary-size-128.html
* igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
- {shard-rkl}: [SKIP][161] ([i915#1849] / [i915#3558] / [i915#4070]) -> [PASS][162]
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-2/igt@kms_plane_multiple@atomic-pipe-b-tiling-none.html
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_plane_multiple@atomic-pipe-b-tiling-none.html
* igt@kms_psr@primary_render:
- {shard-rkl}: ([SKIP][163], [SKIP][164]) ([i915#1072]) -> [PASS][165]
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_psr@primary_render.html
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-4/igt@kms_psr@primary_render.html
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_psr@primary_render.html
* igt@kms_psr@psr2_basic:
- shard-iclb: [SKIP][166] ([fdo#109441]) -> [PASS][167]
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-iclb3/igt@kms_psr@psr2_basic.html
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-iclb2/igt@kms_psr@psr2_basic.html
* igt@kms_psr@sprite_mmap_cpu:
- {shard-rkl}: [SKIP][168] ([i915#1072]) -> [PASS][169] +1 similar issue
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_psr@sprite_mmap_cpu.html
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_psr@sprite_mmap_cpu.html
* igt@kms_universal_plane@universal-plane-gen9-features-pipe-a:
- {shard-rkl}: [SKIP][170] ([i915#1845] / [i915#4070]) -> [PASS][171]
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10988/shard-rkl-1/igt@kms_universal_plane@universal-plane-gen9-features-pipe-a.html
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/shard-rkl-6/igt@kms_universal_plane@universal-plane-gen9-features-pipe-a.html
* igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-apl: [DMESG-WARN][172] ([i915#180] / [i915#29
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21821/index.html
[-- Attachment #2: Type: text/html, Size: 33108 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-12-11 10:59 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-10 11:05 [Intel-gfx] [PATCH] drm/i915: Stop doing writeback from the shrinker Tvrtko Ursulin
2021-12-10 14:46 ` Thomas Hellström
2021-12-10 15:36 ` Tvrtko Ursulin
2021-12-10 15:02 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2021-12-10 15:03 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-12-10 15:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-12-11 10:59 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox