* [Intel-gfx] [PATCH 0/2] drm/i915: refactor 915_vma_move_to_active
@ 2022-10-13 13:29 Andrzej Hajda
2022-10-13 13:30 ` [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active Andrzej Hajda
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Andrzej Hajda @ 2022-10-13 13:29 UTC (permalink / raw)
To: intel-gfx; +Cc: Lucas De Marchi, Matthew Auld, Andrzej Hajda, Rodrigo Vivi
This patchset refactors code related to i915_vma_move_to_active.
I hope 1st patch is quite straightforward.
For the 2nd, I am not sure where to put the helper, any better proposition
welcome.
Regards
Andrzej
Andrzej Hajda (2):
drm/i915: add wait and lock to i915_vma_move_to_active
drm/i915/selftests: add igt_vma_move_to_active_unlocked
.../i915/gem/selftests/i915_gem_client_blt.c | 22 +++---------
.../i915/gem/selftests/i915_gem_coherency.c | 4 +--
.../drm/i915/gem/selftests/i915_gem_context.c | 20 +++--------
.../drm/i915/gem/selftests/i915_gem_mman.c | 10 ++----
.../drm/i915/gem/selftests/igt_gem_utils.c | 12 ++-----
.../drm/i915/gem/selftests/igt_gem_utils.h | 14 ++++++++
drivers/gpu/drm/i915/gt/intel_renderstate.c | 4 +--
drivers/gpu/drm/i915/gt/intel_workarounds.c | 4 +--
drivers/gpu/drm/i915/gt/selftest_execlists.c | 16 ++-------
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 35 +++----------------
drivers/gpu/drm/i915/gt/selftest_lrc.c | 35 ++++---------------
drivers/gpu/drm/i915/gt/selftest_mocs.c | 7 ++--
drivers/gpu/drm/i915/gt/selftest_rps.c | 8 ++---
.../gpu/drm/i915/gt/selftest_workarounds.c | 28 ++++-----------
drivers/gpu/drm/i915/gvt/scheduler.c | 5 ++-
drivers/gpu/drm/i915/i915_perf.c | 4 +--
drivers/gpu/drm/i915/i915_vma.h | 6 +++-
drivers/gpu/drm/i915/selftests/i915_request.c | 9 ++---
drivers/gpu/drm/i915/selftests/igt_spinner.c | 20 ++---------
19 files changed, 67 insertions(+), 196 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active
2022-10-13 13:29 [Intel-gfx] [PATCH 0/2] drm/i915: refactor 915_vma_move_to_active Andrzej Hajda
@ 2022-10-13 13:30 ` Andrzej Hajda
2022-10-13 14:00 ` Tvrtko Ursulin
2022-10-21 15:51 ` Andi Shyti
2022-10-13 13:30 ` [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked Andrzej Hajda
` (2 subsequent siblings)
3 siblings, 2 replies; 12+ messages in thread
From: Andrzej Hajda @ 2022-10-13 13:30 UTC (permalink / raw)
To: intel-gfx; +Cc: Lucas De Marchi, Matthew Auld, Andrzej Hajda, Rodrigo Vivi
Since almost all calls to i915_vma_move_to_active are prepended with
i915_request_await_object, let's put it into i915_vma_move_to_active.
The patch should not introduce functional changes.
Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
---
.../i915/gem/selftests/i915_gem_client_blt.c | 4 +---
.../i915/gem/selftests/i915_gem_coherency.c | 4 +---
.../drm/i915/gem/selftests/i915_gem_context.c | 16 ++++----------
.../drm/i915/gem/selftests/i915_gem_mman.c | 10 +++------
.../drm/i915/gem/selftests/igt_gem_utils.c | 8 ++-----
drivers/gpu/drm/i915/gt/intel_renderstate.c | 4 +---
drivers/gpu/drm/i915/gt/intel_workarounds.c | 4 +---
drivers/gpu/drm/i915/gt/selftest_execlists.c | 14 +++---------
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 17 ++++----------
drivers/gpu/drm/i915/gt/selftest_lrc.c | 12 +++-------
drivers/gpu/drm/i915/gt/selftest_mocs.c | 4 +---
drivers/gpu/drm/i915/gt/selftest_rps.c | 8 ++-----
.../gpu/drm/i915/gt/selftest_workarounds.c | 22 +++++--------------
drivers/gpu/drm/i915/gvt/scheduler.c | 5 ++---
drivers/gpu/drm/i915/i915_perf.c | 4 +---
drivers/gpu/drm/i915/i915_vma.h | 6 ++++-
drivers/gpu/drm/i915/selftests/i915_request.c | 9 ++------
drivers/gpu/drm/i915/selftests/igt_spinner.c | 5 +----
18 files changed, 43 insertions(+), 113 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
index 9a6a6b5b722b60..97dd34bd3acfd3 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
@@ -464,9 +464,7 @@ static int move_to_active(struct i915_vma *vma,
int err;
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, flags);
+ err = i915_vma_move_to_active(vma, rq, flags);
i915_vma_unlock(vma);
return err;
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
index a666d7e610f5fe..c228fe4aba505a 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
@@ -239,9 +239,7 @@ static int gpu_set(struct context *ctx, unsigned long offset, u32 v)
}
intel_ring_advance(rq, cs);
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
out_rq:
i915_request_add(rq);
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index c6ad67b90e8af2..02c1c306990ca9 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -970,15 +970,11 @@ emit_rpcs_query(struct drm_i915_gem_object *obj,
goto err_batch;
}
- err = i915_request_await_object(rq, batch->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(batch, rq, 0);
+ err = i915_vma_move_to_active(batch, rq, 0);
if (err)
goto skip_request;
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
if (err)
goto skip_request;
@@ -1539,9 +1535,7 @@ static int write_to_scratch(struct i915_gem_context *ctx,
}
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
i915_vma_unlock(vma);
if (err)
goto skip_request;
@@ -1675,9 +1669,7 @@ static int read_from_scratch(struct i915_gem_context *ctx,
}
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
i915_vma_unlock(vma);
if (err)
goto skip_request;
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index 1cae24349a96fd..80e7fdd5d16427 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -565,10 +565,8 @@ static int make_obj_busy(struct drm_i915_gem_object *obj)
goto err_unpin;
}
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq,
- EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq,
+ EXEC_OBJECT_WRITE);
i915_request_add(rq);
err_unpin:
@@ -1608,9 +1606,7 @@ static int __igt_mmap_gpu(struct drm_i915_private *i915,
goto out_unpin;
}
- err = i915_request_await_object(rq, vma->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
err = engine->emit_bb_start(rq, vma->node.start, 0, 0);
i915_request_get(rq);
diff --git a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
index 3c55e77b0f1b00..374b10ac430e8f 100644
--- a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
+++ b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
@@ -131,17 +131,13 @@ int igt_gpu_fill_dw(struct intel_context *ce,
}
i915_vma_lock(batch);
- err = i915_request_await_object(rq, batch->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(batch, rq, 0);
+ err = i915_vma_move_to_active(batch, rq, 0);
i915_vma_unlock(batch);
if (err)
goto skip_request;
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
i915_vma_unlock(vma);
if (err)
goto skip_request;
diff --git a/drivers/gpu/drm/i915/gt/intel_renderstate.c b/drivers/gpu/drm/i915/gt/intel_renderstate.c
index 5121e6dc2fa53e..9c1ae070ee7b9a 100644
--- a/drivers/gpu/drm/i915/gt/intel_renderstate.c
+++ b/drivers/gpu/drm/i915/gt/intel_renderstate.c
@@ -215,9 +215,7 @@ int intel_renderstate_emit(struct intel_renderstate *so,
if (!so->vma)
return 0;
- err = i915_request_await_object(rq, so->vma->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(so->vma, rq, 0);
+ err = i915_vma_move_to_active(so->vma, rq, 0);
if (err)
return err;
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index b8eb20a155f0d3..147adbe49e6670 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -3031,9 +3031,7 @@ static int engine_wa_list_verify(struct intel_context *ce,
goto err_vma;
}
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
if (err == 0)
err = wa_list_srm(rq, wal, vma);
diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c b/drivers/gpu/drm/i915/gt/selftest_execlists.c
index 56b7d5b5fea009..6e483ea2b2bb63 100644
--- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
+++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
@@ -2764,9 +2764,7 @@ static int create_gang(struct intel_engine_cs *engine,
i915_request_get(rq);
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, false);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
if (!err)
err = rq->engine->emit_bb_start(rq,
vma->node.start,
@@ -3180,14 +3178,10 @@ create_gpr_client(struct intel_engine_cs *engine,
}
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, false);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
i915_vma_unlock(vma);
i915_vma_lock(batch);
- if (!err)
- err = i915_request_await_object(rq, batch->obj, false);
if (!err)
err = i915_vma_move_to_active(batch, rq, 0);
if (!err)
@@ -3519,9 +3513,7 @@ static int smoke_submit(struct preempt_smoke *smoke,
if (vma) {
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, false);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
if (!err)
err = rq->engine->emit_bb_start(rq,
vma->node.start,
diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index 7f3bb1d34dfbf6..f8dabce671aa64 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -106,10 +106,7 @@ static int move_to_active(struct i915_vma *vma,
int err;
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj,
- flags & EXEC_OBJECT_WRITE);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, flags);
+ err = i915_vma_move_to_active(vma, rq, flags);
i915_vma_unlock(vma);
return err;
@@ -1511,15 +1508,9 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
}
i915_vma_lock(arg.vma);
- err = i915_request_await_object(rq, arg.vma->obj,
- flags & EXEC_OBJECT_WRITE);
- if (err == 0) {
- err = i915_vma_move_to_active(arg.vma, rq, flags);
- if (err)
- pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
- } else {
- pr_err("[%s] Request await failed: %d!\n", engine->name, err);
- }
+ err = i915_vma_move_to_active(arg.vma, rq, flags);
+ if (err)
+ pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
i915_vma_unlock(arg.vma);
diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c b/drivers/gpu/drm/i915/gt/selftest_lrc.c
index 82d3f8058995a9..b25f281ce0cbfe 100644
--- a/drivers/gpu/drm/i915/gt/selftest_lrc.c
+++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c
@@ -452,9 +452,7 @@ static int __live_lrc_state(struct intel_engine_cs *engine,
*cs++ = i915_ggtt_offset(scratch) + RING_TAIL_IDX * sizeof(u32);
*cs++ = 0;
- err = i915_request_await_object(rq, scratch->obj, true);
- if (!err)
- err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
i915_request_get(rq);
i915_request_add(rq);
@@ -602,9 +600,7 @@ __gpr_read(struct intel_context *ce, struct i915_vma *scratch, u32 *slot)
}
i915_vma_lock(scratch);
- err = i915_request_await_object(rq, scratch->obj, true);
- if (!err)
- err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
i915_vma_unlock(scratch);
i915_request_get(rq);
@@ -1060,9 +1056,7 @@ static int move_to_active(struct i915_request *rq,
int err;
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, flags);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, flags);
+ err = i915_vma_move_to_active(vma, rq, flags);
i915_vma_unlock(vma);
return err;
diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c b/drivers/gpu/drm/i915/gt/selftest_mocs.c
index c1d861333c44cc..e0921c87d6a5c2 100644
--- a/drivers/gpu/drm/i915/gt/selftest_mocs.c
+++ b/drivers/gpu/drm/i915/gt/selftest_mocs.c
@@ -228,9 +228,7 @@ static int check_mocs_engine(struct live_mocs *arg,
return PTR_ERR(rq);
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, true);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
i915_vma_unlock(vma);
/* Read the mocs tables back using SRM */
diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c
index 99a372486fb7f6..39f1b7564170c4 100644
--- a/drivers/gpu/drm/i915/gt/selftest_rps.c
+++ b/drivers/gpu/drm/i915/gt/selftest_rps.c
@@ -652,9 +652,7 @@ int live_rps_frequency_cs(void *arg)
goto err_vma;
}
- err = i915_request_await_object(rq, vma->obj, false);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
if (!err)
err = rq->engine->emit_bb_start(rq,
vma->node.start,
@@ -793,9 +791,7 @@ int live_rps_frequency_srm(void *arg)
goto err_vma;
}
- err = i915_request_await_object(rq, vma->obj, false);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
if (!err)
err = rq->engine->emit_bb_start(rq,
vma->node.start,
diff --git a/drivers/gpu/drm/i915/gt/selftest_workarounds.c b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
index 67a9aab801ddf1..8a7d8469a57c8c 100644
--- a/drivers/gpu/drm/i915/gt/selftest_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
@@ -139,9 +139,7 @@ read_nonprivs(struct intel_context *ce)
}
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
i915_vma_unlock(vma);
if (err)
goto err_req;
@@ -632,16 +630,12 @@ static int check_dirty_whitelist(struct intel_context *ce)
goto err_request;
}
- err = i915_request_await_object(rq, batch->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(batch, rq, 0);
+ err = i915_vma_move_to_active(batch, rq, 0);
if (err)
goto err_request;
- err = i915_request_await_object(rq, scratch->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(scratch, rq,
- EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(scratch, rq,
+ EXEC_OBJECT_WRITE);
if (err)
goto err_request;
@@ -860,9 +854,7 @@ static int read_whitelisted_registers(struct intel_context *ce,
return PTR_ERR(rq);
i915_vma_lock(results);
- err = i915_request_await_object(rq, results->obj, true);
- if (err == 0)
- err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
+ err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
i915_vma_unlock(results);
if (err)
goto err_req;
@@ -944,9 +936,7 @@ static int scrub_whitelisted_registers(struct intel_context *ce)
}
i915_vma_lock(batch);
- err = i915_request_await_object(rq, batch->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(batch, rq, 0);
+ err = i915_vma_move_to_active(batch, rq, 0);
i915_vma_unlock(batch);
if (err)
goto err_request;
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index d6fe94cd0fdb61..b49098f045005e 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -570,9 +570,8 @@ static int prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
if (gmadr_bytes == 8)
bb->bb_start_cmd_va[2] = 0;
- ret = i915_vma_move_to_active(bb->vma,
- workload->req,
- 0);
+ ret = _i915_vma_move_to_active(bb->vma, workload->req,
+ &workload->req->fence, 0);
if (ret)
goto err;
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 15816df916c781..19138e99d2fd03 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -2015,9 +2015,7 @@ emit_oa_config(struct i915_perf_stream *stream,
goto err_add_request;
}
- err = i915_request_await_object(rq, vma->obj, 0);
- if (!err)
- err = i915_vma_move_to_active(vma, rq, 0);
+ err = i915_vma_move_to_active(vma, rq, 0);
if (err)
goto err_add_request;
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index aecd9c64486b27..47ac5bd1ffcce6 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -64,7 +64,11 @@ static inline int __must_check
i915_vma_move_to_active(struct i915_vma *vma, struct i915_request *rq,
unsigned int flags)
{
- return _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
+ int err = i915_request_await_object(rq, vma->obj, flags & EXEC_OBJECT_WRITE);
+
+ if (!err)
+ err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
+ return err;
}
#define __i915_vma_flags(v) ((unsigned long *)&(v)->flags.counter)
diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c b/drivers/gpu/drm/i915/selftests/i915_request.c
index 818a4909c1f354..f9fe634fe27a62 100644
--- a/drivers/gpu/drm/i915/selftests/i915_request.c
+++ b/drivers/gpu/drm/i915/selftests/i915_request.c
@@ -1203,9 +1203,7 @@ static int live_all_engines(void *arg)
goto out_request;
}
- err = i915_request_await_object(request[idx], batch->obj, 0);
- if (err == 0)
- err = i915_vma_move_to_active(batch, request[idx], 0);
+ err = i915_vma_move_to_active(batch, request[idx], 0);
GEM_BUG_ON(err);
err = engine->emit_bb_start(request[idx],
@@ -1332,10 +1330,7 @@ static int live_sequential_engines(void *arg)
}
}
- err = i915_request_await_object(request[idx],
- batch->obj, false);
- if (err == 0)
- err = i915_vma_move_to_active(batch, request[idx], 0);
+ err = i915_vma_move_to_active(batch, request[idx], 0);
GEM_BUG_ON(err);
err = engine->emit_bb_start(request[idx],
diff --git a/drivers/gpu/drm/i915/selftests/igt_spinner.c b/drivers/gpu/drm/i915/selftests/igt_spinner.c
index 0c22594ae27469..78b3c138a6d326 100644
--- a/drivers/gpu/drm/i915/selftests/igt_spinner.c
+++ b/drivers/gpu/drm/i915/selftests/igt_spinner.c
@@ -126,10 +126,7 @@ static int move_to_active(struct i915_vma *vma,
int err;
i915_vma_lock(vma);
- err = i915_request_await_object(rq, vma->obj,
- flags & EXEC_OBJECT_WRITE);
- if (err == 0)
- err = i915_vma_move_to_active(vma, rq, flags);
+ err = i915_vma_move_to_active(vma, rq, flags);
i915_vma_unlock(vma);
return err;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked
2022-10-13 13:29 [Intel-gfx] [PATCH 0/2] drm/i915: refactor 915_vma_move_to_active Andrzej Hajda
2022-10-13 13:30 ` [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active Andrzej Hajda
@ 2022-10-13 13:30 ` Andrzej Hajda
2022-10-21 15:39 ` Andi Shyti
2022-10-13 15:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: refactor 915_vma_move_to_active Patchwork
2022-10-13 17:24 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
3 siblings, 1 reply; 12+ messages in thread
From: Andrzej Hajda @ 2022-10-13 13:30 UTC (permalink / raw)
To: intel-gfx; +Cc: Lucas De Marchi, Matthew Auld, Andrzej Hajda, Rodrigo Vivi
Many calls to i915_vma_move_to_active are surrounded by vma lock
and/or there are multiple local helpers for it in particular tests.
Let's replace it by common helper.
The patch should not introduce functional changes.
Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
---
.../i915/gem/selftests/i915_gem_client_blt.c | 20 +++-----------
.../drm/i915/gem/selftests/i915_gem_context.c | 8 ++----
.../drm/i915/gem/selftests/igt_gem_utils.c | 8 ++----
.../drm/i915/gem/selftests/igt_gem_utils.h | 14 ++++++++++
drivers/gpu/drm/i915/gt/selftest_execlists.c | 4 +--
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 22 +++------------
drivers/gpu/drm/i915/gt/selftest_lrc.c | 27 +++++--------------
drivers/gpu/drm/i915/gt/selftest_mocs.c | 5 ++--
.../gpu/drm/i915/gt/selftest_workarounds.c | 12 +++------
drivers/gpu/drm/i915/selftests/igt_spinner.c | 17 ++----------
10 files changed, 39 insertions(+), 98 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
index 97dd34bd3acfd3..692a16914ca0fe 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
@@ -13,6 +13,7 @@
#include "gt/intel_gt_regs.h"
#include "gem/i915_gem_lmem.h"
+#include "gem/selftests/igt_gem_utils.h"
#include "selftests/igt_flush_test.h"
#include "selftests/mock_drm.h"
#include "selftests/i915_random.h"
@@ -457,19 +458,6 @@ static int verify_buffer(const struct tiled_blits *t,
return ret;
}
-static int move_to_active(struct i915_vma *vma,
- struct i915_request *rq,
- unsigned int flags)
-{
- int err;
-
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, flags);
- i915_vma_unlock(vma);
-
- return err;
-}
-
static int pin_buffer(struct i915_vma *vma, u64 addr)
{
int err;
@@ -523,11 +511,11 @@ tiled_blit(struct tiled_blits *t,
goto err_bb;
}
- err = move_to_active(t->batch, rq, 0);
+ err = igt_vma_move_to_active_unlocked(t->batch, rq, 0);
if (!err)
- err = move_to_active(src->vma, rq, 0);
+ err = igt_vma_move_to_active_unlocked(src->vma, rq, 0);
if (!err)
- err = move_to_active(dst->vma, rq, 0);
+ err = igt_vma_move_to_active_unlocked(dst->vma, rq, 0);
if (!err)
err = rq->engine->emit_bb_start(rq,
t->batch->node.start,
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index 02c1c306990ca9..b0a5cee0f0087b 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -1534,9 +1534,7 @@ static int write_to_scratch(struct i915_gem_context *ctx,
goto err_unpin;
}
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, 0);
- i915_vma_unlock(vma);
+ err = igt_vma_move_to_active_unlocked(vma, rq, 0);
if (err)
goto skip_request;
@@ -1668,9 +1666,7 @@ static int read_from_scratch(struct i915_gem_context *ctx,
goto err_unpin;
}
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
- i915_vma_unlock(vma);
+ err = igt_vma_move_to_active_unlocked(vma, rq, EXEC_OBJECT_WRITE);
if (err)
goto skip_request;
diff --git a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
index 374b10ac430e8f..56ffce0091f5eb 100644
--- a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
+++ b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
@@ -130,15 +130,11 @@ int igt_gpu_fill_dw(struct intel_context *ce,
goto err_batch;
}
- i915_vma_lock(batch);
- err = i915_vma_move_to_active(batch, rq, 0);
- i915_vma_unlock(batch);
+ err = igt_vma_move_to_active_unlocked(batch, rq, 0);
if (err)
goto skip_request;
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
- i915_vma_unlock(vma);
+ err = igt_vma_move_to_active_unlocked(vma, rq, EXEC_OBJECT_WRITE);
if (err)
goto skip_request;
diff --git a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h
index 4221cf84d1756f..1379fbc1443126 100644
--- a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h
+++ b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h
@@ -9,6 +9,8 @@
#include <linux/types.h>
+#include "i915_vma.h"
+
struct i915_request;
struct i915_gem_context;
struct i915_vma;
@@ -29,4 +31,16 @@ int igt_gpu_fill_dw(struct intel_context *ce,
struct i915_vma *vma, u64 offset,
unsigned long count, u32 val);
+static inline int __must_check
+igt_vma_move_to_active_unlocked(struct i915_vma *vma, struct i915_request *rq,
+ unsigned int flags)
+{
+ int err;
+
+ i915_vma_lock(vma);
+ err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
+ i915_vma_unlock(vma);
+ return err;
+}
+
#endif /* __IGT_GEM_UTILS_H__ */
diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c b/drivers/gpu/drm/i915/gt/selftest_execlists.c
index 6e483ea2b2bb63..40bb9561634df5 100644
--- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
+++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
@@ -3177,9 +3177,7 @@ create_gpr_client(struct intel_engine_cs *engine,
goto out_batch;
}
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, 0);
- i915_vma_unlock(vma);
+ err = igt_vma_move_to_active_unlocked(vma, rq, 0);
i915_vma_lock(batch);
if (!err)
diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index f8dabce671aa64..9cce807e34eca9 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -99,19 +99,6 @@ static u64 hws_address(const struct i915_vma *hws,
return hws->node.start + offset_in_page(sizeof(u32)*rq->fence.context);
}
-static int move_to_active(struct i915_vma *vma,
- struct i915_request *rq,
- unsigned int flags)
-{
- int err;
-
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, flags);
- i915_vma_unlock(vma);
-
- return err;
-}
-
static struct i915_request *
hang_create_request(struct hang *h, struct intel_engine_cs *engine)
{
@@ -172,11 +159,11 @@ hang_create_request(struct hang *h, struct intel_engine_cs *engine)
goto unpin_hws;
}
- err = move_to_active(vma, rq, 0);
+ err = igt_vma_move_to_active_unlocked(vma, rq, 0);
if (err)
goto cancel_rq;
- err = move_to_active(hws, rq, 0);
+ err = igt_vma_move_to_active_unlocked(hws, rq, 0);
if (err)
goto cancel_rq;
@@ -1507,13 +1494,10 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
}
}
- i915_vma_lock(arg.vma);
- err = i915_vma_move_to_active(arg.vma, rq, flags);
+ err = igt_vma_move_to_active_unlocked(arg.vma, rq, flags);
if (err)
pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
- i915_vma_unlock(arg.vma);
-
if (flags & EXEC_OBJECT_NEEDS_FENCE)
i915_vma_unpin_fence(arg.vma);
i915_vma_unpin(arg.vma);
diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c b/drivers/gpu/drm/i915/gt/selftest_lrc.c
index b25f281ce0cbfe..483817c2a5c114 100644
--- a/drivers/gpu/drm/i915/gt/selftest_lrc.c
+++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c
@@ -599,9 +599,7 @@ __gpr_read(struct intel_context *ce, struct i915_vma *scratch, u32 *slot)
*cs++ = 0;
}
- i915_vma_lock(scratch);
- err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
- i915_vma_unlock(scratch);
+ err = igt_vma_move_to_active_unlocked(scratch, rq, EXEC_OBJECT_WRITE);
i915_request_get(rq);
i915_request_add(rq);
@@ -1049,19 +1047,6 @@ store_context(struct intel_context *ce, struct i915_vma *scratch)
return batch;
}
-static int move_to_active(struct i915_request *rq,
- struct i915_vma *vma,
- unsigned int flags)
-{
- int err;
-
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, flags);
- i915_vma_unlock(vma);
-
- return err;
-}
-
static struct i915_request *
record_registers(struct intel_context *ce,
struct i915_vma *before,
@@ -1087,19 +1072,19 @@ record_registers(struct intel_context *ce,
if (IS_ERR(rq))
goto err_after;
- err = move_to_active(rq, before, EXEC_OBJECT_WRITE);
+ err = igt_vma_move_to_active_unlocked(before, rq, EXEC_OBJECT_WRITE);
if (err)
goto err_rq;
- err = move_to_active(rq, b_before, 0);
+ err = igt_vma_move_to_active_unlocked(b_before, rq, 0);
if (err)
goto err_rq;
- err = move_to_active(rq, after, EXEC_OBJECT_WRITE);
+ err = igt_vma_move_to_active_unlocked(after, rq, EXEC_OBJECT_WRITE);
if (err)
goto err_rq;
- err = move_to_active(rq, b_after, 0);
+ err = igt_vma_move_to_active_unlocked(b_after, rq, 0);
if (err)
goto err_rq;
@@ -1237,7 +1222,7 @@ static int poison_registers(struct intel_context *ce, u32 poison, u32 *sema)
goto err_batch;
}
- err = move_to_active(rq, batch, 0);
+ err = igt_vma_move_to_active_unlocked(batch, rq, 0);
if (err)
goto err_rq;
diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c b/drivers/gpu/drm/i915/gt/selftest_mocs.c
index e0921c87d6a5c2..ca009a6a13bdbb 100644
--- a/drivers/gpu/drm/i915/gt/selftest_mocs.c
+++ b/drivers/gpu/drm/i915/gt/selftest_mocs.c
@@ -7,6 +7,7 @@
#include "gt/intel_gpu_commands.h"
#include "i915_selftest.h"
+#include "gem/selftests/igt_gem_utils.h"
#include "gem/selftests/mock_context.h"
#include "selftests/igt_reset.h"
#include "selftests/igt_spinner.h"
@@ -227,9 +228,7 @@ static int check_mocs_engine(struct live_mocs *arg,
if (IS_ERR(rq))
return PTR_ERR(rq);
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
- i915_vma_unlock(vma);
+ err = igt_vma_move_to_active_unlocked(vma, rq, EXEC_OBJECT_WRITE);
/* Read the mocs tables back using SRM */
offset = i915_ggtt_offset(vma);
diff --git a/drivers/gpu/drm/i915/gt/selftest_workarounds.c b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
index 8a7d8469a57c8c..b896e652cabddf 100644
--- a/drivers/gpu/drm/i915/gt/selftest_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
@@ -138,9 +138,7 @@ read_nonprivs(struct intel_context *ce)
goto err_pin;
}
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
- i915_vma_unlock(vma);
+ err = igt_vma_move_to_active_unlocked(vma, rq, EXEC_OBJECT_WRITE);
if (err)
goto err_req;
@@ -853,9 +851,7 @@ static int read_whitelisted_registers(struct intel_context *ce,
if (IS_ERR(rq))
return PTR_ERR(rq);
- i915_vma_lock(results);
- err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
- i915_vma_unlock(results);
+ err = igt_vma_move_to_active_unlocked(results, rq, EXEC_OBJECT_WRITE);
if (err)
goto err_req;
@@ -935,9 +931,7 @@ static int scrub_whitelisted_registers(struct intel_context *ce)
goto err_request;
}
- i915_vma_lock(batch);
- err = i915_vma_move_to_active(batch, rq, 0);
- i915_vma_unlock(batch);
+ err = igt_vma_move_to_active_unlocked(batch, rq, 0);
if (err)
goto err_request;
diff --git a/drivers/gpu/drm/i915/selftests/igt_spinner.c b/drivers/gpu/drm/i915/selftests/igt_spinner.c
index 78b3c138a6d326..16978ac5979785 100644
--- a/drivers/gpu/drm/i915/selftests/igt_spinner.c
+++ b/drivers/gpu/drm/i915/selftests/igt_spinner.c
@@ -119,19 +119,6 @@ static u64 hws_address(const struct i915_vma *hws,
return hws->node.start + seqno_offset(rq->fence.context);
}
-static int move_to_active(struct i915_vma *vma,
- struct i915_request *rq,
- unsigned int flags)
-{
- int err;
-
- i915_vma_lock(vma);
- err = i915_vma_move_to_active(vma, rq, flags);
- i915_vma_unlock(vma);
-
- return err;
-}
-
struct i915_request *
igt_spinner_create_request(struct igt_spinner *spin,
struct intel_context *ce,
@@ -162,11 +149,11 @@ igt_spinner_create_request(struct igt_spinner *spin,
if (IS_ERR(rq))
return ERR_CAST(rq);
- err = move_to_active(vma, rq, 0);
+ err = igt_vma_move_to_active_unlocked(vma, rq, 0);
if (err)
goto cancel_rq;
- err = move_to_active(hws, rq, 0);
+ err = igt_vma_move_to_active_unlocked(hws, rq, 0);
if (err)
goto cancel_rq;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active
2022-10-13 13:30 ` [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active Andrzej Hajda
@ 2022-10-13 14:00 ` Tvrtko Ursulin
2022-10-21 15:51 ` Andi Shyti
1 sibling, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2022-10-13 14:00 UTC (permalink / raw)
To: Andrzej Hajda, intel-gfx; +Cc: Lucas De Marchi, Matthew Auld, Rodrigo Vivi
On 13/10/2022 14:30, Andrzej Hajda wrote:
> Since almost all calls to i915_vma_move_to_active are prepended with
> i915_request_await_object, let's put it into i915_vma_move_to_active.
> The patch should not introduce functional changes.
I know I am late to the party but perhaps one alternative approach to
consider would be extending the flags (see __EXEC_OBJECT_NO_RESERVE for
namespace) and handling the await from _i915_vma_move_to_active? Since
it already acceses vma->obj from there. Not saying it would be a smaller
diff but would avoid extending the static inline wrapper. Maybe more
readable? Don't know. No strong opinion either way from me.
Regards,
Tvrtko
> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
> ---
> .../i915/gem/selftests/i915_gem_client_blt.c | 4 +---
> .../i915/gem/selftests/i915_gem_coherency.c | 4 +---
> .../drm/i915/gem/selftests/i915_gem_context.c | 16 ++++----------
> .../drm/i915/gem/selftests/i915_gem_mman.c | 10 +++------
> .../drm/i915/gem/selftests/igt_gem_utils.c | 8 ++-----
> drivers/gpu/drm/i915/gt/intel_renderstate.c | 4 +---
> drivers/gpu/drm/i915/gt/intel_workarounds.c | 4 +---
> drivers/gpu/drm/i915/gt/selftest_execlists.c | 14 +++---------
> drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 17 ++++----------
> drivers/gpu/drm/i915/gt/selftest_lrc.c | 12 +++-------
> drivers/gpu/drm/i915/gt/selftest_mocs.c | 4 +---
> drivers/gpu/drm/i915/gt/selftest_rps.c | 8 ++-----
> .../gpu/drm/i915/gt/selftest_workarounds.c | 22 +++++--------------
> drivers/gpu/drm/i915/gvt/scheduler.c | 5 ++---
> drivers/gpu/drm/i915/i915_perf.c | 4 +---
> drivers/gpu/drm/i915/i915_vma.h | 6 ++++-
> drivers/gpu/drm/i915/selftests/i915_request.c | 9 ++------
> drivers/gpu/drm/i915/selftests/igt_spinner.c | 5 +----
> 18 files changed, 43 insertions(+), 113 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
> index 9a6a6b5b722b60..97dd34bd3acfd3 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
> @@ -464,9 +464,7 @@ static int move_to_active(struct i915_vma *vma,
> int err;
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, flags);
> + err = i915_vma_move_to_active(vma, rq, flags);
> i915_vma_unlock(vma);
>
> return err;
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
> index a666d7e610f5fe..c228fe4aba505a 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
> @@ -239,9 +239,7 @@ static int gpu_set(struct context *ctx, unsigned long offset, u32 v)
> }
> intel_ring_advance(rq, cs);
>
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
>
> out_rq:
> i915_request_add(rq);
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
> index c6ad67b90e8af2..02c1c306990ca9 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
> @@ -970,15 +970,11 @@ emit_rpcs_query(struct drm_i915_gem_object *obj,
> goto err_batch;
> }
>
> - err = i915_request_await_object(rq, batch->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, rq, 0);
> + err = i915_vma_move_to_active(batch, rq, 0);
> if (err)
> goto skip_request;
>
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> if (err)
> goto skip_request;
>
> @@ -1539,9 +1535,7 @@ static int write_to_scratch(struct i915_gem_context *ctx,
> }
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> i915_vma_unlock(vma);
> if (err)
> goto skip_request;
> @@ -1675,9 +1669,7 @@ static int read_from_scratch(struct i915_gem_context *ctx,
> }
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(vma);
> if (err)
> goto skip_request;
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> index 1cae24349a96fd..80e7fdd5d16427 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> @@ -565,10 +565,8 @@ static int make_obj_busy(struct drm_i915_gem_object *obj)
> goto err_unpin;
> }
>
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq,
> - EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq,
> + EXEC_OBJECT_WRITE);
>
> i915_request_add(rq);
> err_unpin:
> @@ -1608,9 +1606,7 @@ static int __igt_mmap_gpu(struct drm_i915_private *i915,
> goto out_unpin;
> }
>
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
>
> err = engine->emit_bb_start(rq, vma->node.start, 0, 0);
> i915_request_get(rq);
> diff --git a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
> index 3c55e77b0f1b00..374b10ac430e8f 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c
> @@ -131,17 +131,13 @@ int igt_gpu_fill_dw(struct intel_context *ce,
> }
>
> i915_vma_lock(batch);
> - err = i915_request_await_object(rq, batch->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, rq, 0);
> + err = i915_vma_move_to_active(batch, rq, 0);
> i915_vma_unlock(batch);
> if (err)
> goto skip_request;
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(vma);
> if (err)
> goto skip_request;
> diff --git a/drivers/gpu/drm/i915/gt/intel_renderstate.c b/drivers/gpu/drm/i915/gt/intel_renderstate.c
> index 5121e6dc2fa53e..9c1ae070ee7b9a 100644
> --- a/drivers/gpu/drm/i915/gt/intel_renderstate.c
> +++ b/drivers/gpu/drm/i915/gt/intel_renderstate.c
> @@ -215,9 +215,7 @@ int intel_renderstate_emit(struct intel_renderstate *so,
> if (!so->vma)
> return 0;
>
> - err = i915_request_await_object(rq, so->vma->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(so->vma, rq, 0);
> + err = i915_vma_move_to_active(so->vma, rq, 0);
> if (err)
> return err;
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index b8eb20a155f0d3..147adbe49e6670 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -3031,9 +3031,7 @@ static int engine_wa_list_verify(struct intel_context *ce,
> goto err_vma;
> }
>
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> if (err == 0)
> err = wa_list_srm(rq, wal, vma);
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c b/drivers/gpu/drm/i915/gt/selftest_execlists.c
> index 56b7d5b5fea009..6e483ea2b2bb63 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
> @@ -2764,9 +2764,7 @@ static int create_gang(struct intel_engine_cs *engine,
> i915_request_get(rq);
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> if (!err)
> err = rq->engine->emit_bb_start(rq,
> vma->node.start,
> @@ -3180,14 +3178,10 @@ create_gpr_client(struct intel_engine_cs *engine,
> }
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> i915_vma_unlock(vma);
>
> i915_vma_lock(batch);
> - if (!err)
> - err = i915_request_await_object(rq, batch->obj, false);
> if (!err)
> err = i915_vma_move_to_active(batch, rq, 0);
> if (!err)
> @@ -3519,9 +3513,7 @@ static int smoke_submit(struct preempt_smoke *smoke,
>
> if (vma) {
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> if (!err)
> err = rq->engine->emit_bb_start(rq,
> vma->node.start,
> diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> index 7f3bb1d34dfbf6..f8dabce671aa64 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> @@ -106,10 +106,7 @@ static int move_to_active(struct i915_vma *vma,
> int err;
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj,
> - flags & EXEC_OBJECT_WRITE);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, flags);
> + err = i915_vma_move_to_active(vma, rq, flags);
> i915_vma_unlock(vma);
>
> return err;
> @@ -1511,15 +1508,9 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
> }
>
> i915_vma_lock(arg.vma);
> - err = i915_request_await_object(rq, arg.vma->obj,
> - flags & EXEC_OBJECT_WRITE);
> - if (err == 0) {
> - err = i915_vma_move_to_active(arg.vma, rq, flags);
> - if (err)
> - pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
> - } else {
> - pr_err("[%s] Request await failed: %d!\n", engine->name, err);
> - }
> + err = i915_vma_move_to_active(arg.vma, rq, flags);
> + if (err)
> + pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
>
> i915_vma_unlock(arg.vma);
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c b/drivers/gpu/drm/i915/gt/selftest_lrc.c
> index 82d3f8058995a9..b25f281ce0cbfe 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c
> @@ -452,9 +452,7 @@ static int __live_lrc_state(struct intel_engine_cs *engine,
> *cs++ = i915_ggtt_offset(scratch) + RING_TAIL_IDX * sizeof(u32);
> *cs++ = 0;
>
> - err = i915_request_await_object(rq, scratch->obj, true);
> - if (!err)
> - err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
>
> i915_request_get(rq);
> i915_request_add(rq);
> @@ -602,9 +600,7 @@ __gpr_read(struct intel_context *ce, struct i915_vma *scratch, u32 *slot)
> }
>
> i915_vma_lock(scratch);
> - err = i915_request_await_object(rq, scratch->obj, true);
> - if (!err)
> - err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(scratch, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(scratch);
>
> i915_request_get(rq);
> @@ -1060,9 +1056,7 @@ static int move_to_active(struct i915_request *rq,
> int err;
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, flags);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, flags);
> + err = i915_vma_move_to_active(vma, rq, flags);
> i915_vma_unlock(vma);
>
> return err;
> diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c b/drivers/gpu/drm/i915/gt/selftest_mocs.c
> index c1d861333c44cc..e0921c87d6a5c2 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_mocs.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_mocs.c
> @@ -228,9 +228,7 @@ static int check_mocs_engine(struct live_mocs *arg,
> return PTR_ERR(rq);
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(vma);
>
> /* Read the mocs tables back using SRM */
> diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c
> index 99a372486fb7f6..39f1b7564170c4 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_rps.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_rps.c
> @@ -652,9 +652,7 @@ int live_rps_frequency_cs(void *arg)
> goto err_vma;
> }
>
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> if (!err)
> err = rq->engine->emit_bb_start(rq,
> vma->node.start,
> @@ -793,9 +791,7 @@ int live_rps_frequency_srm(void *arg)
> goto err_vma;
> }
>
> - err = i915_request_await_object(rq, vma->obj, false);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> if (!err)
> err = rq->engine->emit_bb_start(rq,
> vma->node.start,
> diff --git a/drivers/gpu/drm/i915/gt/selftest_workarounds.c b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
> index 67a9aab801ddf1..8a7d8469a57c8c 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
> @@ -139,9 +139,7 @@ read_nonprivs(struct intel_context *ce)
> }
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(vma);
> if (err)
> goto err_req;
> @@ -632,16 +630,12 @@ static int check_dirty_whitelist(struct intel_context *ce)
> goto err_request;
> }
>
> - err = i915_request_await_object(rq, batch->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, rq, 0);
> + err = i915_vma_move_to_active(batch, rq, 0);
> if (err)
> goto err_request;
>
> - err = i915_request_await_object(rq, scratch->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(scratch, rq,
> - EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(scratch, rq,
> + EXEC_OBJECT_WRITE);
> if (err)
> goto err_request;
>
> @@ -860,9 +854,7 @@ static int read_whitelisted_registers(struct intel_context *ce,
> return PTR_ERR(rq);
>
> i915_vma_lock(results);
> - err = i915_request_await_object(rq, results->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(results);
> if (err)
> goto err_req;
> @@ -944,9 +936,7 @@ static int scrub_whitelisted_registers(struct intel_context *ce)
> }
>
> i915_vma_lock(batch);
> - err = i915_request_await_object(rq, batch->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, rq, 0);
> + err = i915_vma_move_to_active(batch, rq, 0);
> i915_vma_unlock(batch);
> if (err)
> goto err_request;
> diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
> index d6fe94cd0fdb61..b49098f045005e 100644
> --- a/drivers/gpu/drm/i915/gvt/scheduler.c
> +++ b/drivers/gpu/drm/i915/gvt/scheduler.c
> @@ -570,9 +570,8 @@ static int prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
> if (gmadr_bytes == 8)
> bb->bb_start_cmd_va[2] = 0;
>
> - ret = i915_vma_move_to_active(bb->vma,
> - workload->req,
> - 0);
> + ret = _i915_vma_move_to_active(bb->vma, workload->req,
> + &workload->req->fence, 0);
> if (ret)
> goto err;
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 15816df916c781..19138e99d2fd03 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -2015,9 +2015,7 @@ emit_oa_config(struct i915_perf_stream *stream,
> goto err_add_request;
> }
>
> - err = i915_request_await_object(rq, vma->obj, 0);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> if (err)
> goto err_add_request;
>
> diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
> index aecd9c64486b27..47ac5bd1ffcce6 100644
> --- a/drivers/gpu/drm/i915/i915_vma.h
> +++ b/drivers/gpu/drm/i915/i915_vma.h
> @@ -64,7 +64,11 @@ static inline int __must_check
> i915_vma_move_to_active(struct i915_vma *vma, struct i915_request *rq,
> unsigned int flags)
> {
> - return _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
> + int err = i915_request_await_object(rq, vma->obj, flags & EXEC_OBJECT_WRITE);
> +
> + if (!err)
> + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
> + return err;
> }
>
> #define __i915_vma_flags(v) ((unsigned long *)&(v)->flags.counter)
> diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c b/drivers/gpu/drm/i915/selftests/i915_request.c
> index 818a4909c1f354..f9fe634fe27a62 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_request.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_request.c
> @@ -1203,9 +1203,7 @@ static int live_all_engines(void *arg)
> goto out_request;
> }
>
> - err = i915_request_await_object(request[idx], batch->obj, 0);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, request[idx], 0);
> + err = i915_vma_move_to_active(batch, request[idx], 0);
> GEM_BUG_ON(err);
>
> err = engine->emit_bb_start(request[idx],
> @@ -1332,10 +1330,7 @@ static int live_sequential_engines(void *arg)
> }
> }
>
> - err = i915_request_await_object(request[idx],
> - batch->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, request[idx], 0);
> + err = i915_vma_move_to_active(batch, request[idx], 0);
> GEM_BUG_ON(err);
>
> err = engine->emit_bb_start(request[idx],
> diff --git a/drivers/gpu/drm/i915/selftests/igt_spinner.c b/drivers/gpu/drm/i915/selftests/igt_spinner.c
> index 0c22594ae27469..78b3c138a6d326 100644
> --- a/drivers/gpu/drm/i915/selftests/igt_spinner.c
> +++ b/drivers/gpu/drm/i915/selftests/igt_spinner.c
> @@ -126,10 +126,7 @@ static int move_to_active(struct i915_vma *vma,
> int err;
>
> i915_vma_lock(vma);
> - err = i915_request_await_object(rq, vma->obj,
> - flags & EXEC_OBJECT_WRITE);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq, flags);
> + err = i915_vma_move_to_active(vma, rq, flags);
> i915_vma_unlock(vma);
>
> return err;
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: refactor 915_vma_move_to_active
2022-10-13 13:29 [Intel-gfx] [PATCH 0/2] drm/i915: refactor 915_vma_move_to_active Andrzej Hajda
2022-10-13 13:30 ` [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active Andrzej Hajda
2022-10-13 13:30 ` [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked Andrzej Hajda
@ 2022-10-13 15:06 ` Patchwork
2022-10-13 17:24 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
3 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2022-10-13 15:06 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 7269 bytes --]
== Series Details ==
Series: drm/i915: refactor 915_vma_move_to_active
URL : https://patchwork.freedesktop.org/series/109668/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12242 -> Patchwork_109668v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/index.html
Participating hosts (45 -> 45)
------------------------------
Additional (3): fi-tgl-u2 bat-atsm-1 fi-pnv-d510
Missing (3): fi-ilk-m540 fi-bdw-5557u fi-hsw-4200u
Known issues
------------
Here are the changes found in Patchwork_109668v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-tgl-u2: NOTRUN -> [SKIP][1] ([i915#2190])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-tgl-u2/igt@gem_huc_copy@huc-copy.html
* igt@i915_selftest@live@hangcheck:
- fi-hsw-4770: [PASS][2] -> [INCOMPLETE][3] ([i915#4785])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
* igt@kms_chamelium@hdmi-edid-read:
- fi-tgl-u2: NOTRUN -> [SKIP][4] ([fdo#109284] / [fdo#111827]) +7 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-tgl-u2/igt@kms_chamelium@hdmi-edid-read.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
- fi-tgl-u2: NOTRUN -> [SKIP][5] ([i915#4103])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-tgl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html
* igt@kms_force_connector_basic@force-load-detect:
- fi-tgl-u2: NOTRUN -> [SKIP][6] ([fdo#109285])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-tgl-u2/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_psr@primary_page_flip:
- fi-pnv-d510: NOTRUN -> [SKIP][7] ([fdo#109271]) +43 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-pnv-d510/igt@kms_psr@primary_page_flip.html
* igt@kms_setmode@basic-clone-single-crtc:
- fi-tgl-u2: NOTRUN -> [SKIP][8] ([i915#3555])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-tgl-u2/igt@kms_setmode@basic-clone-single-crtc.html
* igt@runner@aborted:
- fi-hsw-4770: NOTRUN -> [FAIL][9] ([fdo#109271] / [i915#4312] / [i915#5594])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-hsw-4770/igt@runner@aborted.html
#### Possible fixes ####
* igt@i915_module_load@reload:
- {bat-rpls-2}: [DMESG-WARN][10] ([i915#5537]) -> [PASS][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-rpls-2/igt@i915_module_load@reload.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/bat-rpls-2/igt@i915_module_load@reload.html
* igt@i915_selftest@live@reset:
- {bat-rpls-1}: [DMESG-FAIL][12] ([i915#4983]) -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-rpls-1/igt@i915_selftest@live@reset.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/bat-rpls-1/igt@i915_selftest@live@reset.html
- {bat-rpls-2}: [DMESG-FAIL][14] ([i915#4983]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-rpls-2/igt@i915_selftest@live@reset.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/bat-rpls-2/igt@i915_selftest@live@reset.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
- fi-bsw-kefka: [FAIL][16] ([i915#6298]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3:
- {bat-dg2-11}: [FAIL][18] ([i915#6818]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3.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#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
[i915#5153]: https://gitlab.freedesktop.org/drm/intel/issues/5153
[i915#5278]: https://gitlab.freedesktop.org/drm/intel/issues/5278
[i915#5537]: https://gitlab.freedesktop.org/drm/intel/issues/5537
[i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594
[i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559
[i915#6818]: https://gitlab.freedesktop.org/drm/intel/issues/6818
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7029]: https://gitlab.freedesktop.org/drm/intel/issues/7029
[i915#7030]: https://gitlab.freedesktop.org/drm/intel/issues/7030
[i915#7031]: https://gitlab.freedesktop.org/drm/intel/issues/7031
Build changes
-------------
* Linux: CI_DRM_12242 -> Patchwork_109668v1
CI-20190529: 20190529
CI_DRM_12242: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7012: ca6f5bdd537d26692c4b1ca011b8c4f227d95703 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_109668v1: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
a6d647258326 drm/i915/selftests: add igt_vma_move_to_active_unlocked
9cb692986033 drm/i915: add wait and lock to i915_vma_move_to_active
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/index.html
[-- Attachment #2: Type: text/html, Size: 7386 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: refactor 915_vma_move_to_active
2022-10-13 13:29 [Intel-gfx] [PATCH 0/2] drm/i915: refactor 915_vma_move_to_active Andrzej Hajda
` (2 preceding siblings ...)
2022-10-13 15:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: refactor 915_vma_move_to_active Patchwork
@ 2022-10-13 17:24 ` Patchwork
3 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2022-10-13 17:24 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 29042 bytes --]
== Series Details ==
Series: drm/i915: refactor 915_vma_move_to_active
URL : https://patchwork.freedesktop.org/series/109668/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_12242_full -> Patchwork_109668v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_109668v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_109668v1_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_109668v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@short-flip-before-cursor@varying-size:
- shard-skl: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl10/igt@kms_cursor_legacy@short-flip-before-cursor@varying-size.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl1/igt@kms_cursor_legacy@short-flip-before-cursor@varying-size.html
Known issues
------------
Here are the changes found in Patchwork_109668v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_exec@basic-nohangcheck:
- shard-tglb: [PASS][3] -> [FAIL][4] ([i915#6268])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb2/igt@gem_ctx_exec@basic-nohangcheck.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-tglb1/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-iclb: [PASS][5] -> [SKIP][6] ([i915#4525]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@gem_exec_balancer@parallel-keep-in-fence.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb3/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-apl: [PASS][7] -> [FAIL][8] ([i915#2842])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl2/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][9] ([i915#2842])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb1/igt@gem_exec_fair@basic-none@vcs1.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-iclb: [PASS][10] -> [FAIL][11] ([i915#2842])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb8/igt@gem_exec_fair@basic-pace@vecs0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb5/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_lmem_swapping@heavy-random:
- shard-skl: NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#4613]) +1 similar issue
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl10/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-skl: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#3323])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl4/igt@gem_userptr_blits@dmabuf-sync.html
* igt@i915_pipe_stress@stress-xrgb8888-untiled:
- shard-apl: NOTRUN -> [FAIL][14] ([i915#7036])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
- shard-skl: NOTRUN -> [FAIL][15] ([i915#7036])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl1/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
* igt@i915_suspend@basic-s2idle-without-i915:
- shard-tglb: [PASS][16] -> [DMESG-WARN][17] ([i915#2867])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb2/igt@i915_suspend@basic-s2idle-without-i915.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-tglb2/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@kms_addfb_basic@bad-pitch-65536:
- shard-apl: [PASS][18] -> [DMESG-WARN][19] ([i915#5904] / [i915#62]) +5 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@kms_addfb_basic@bad-pitch-65536.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_addfb_basic@bad-pitch-65536.html
* igt@kms_addfb_basic@legacy-format:
- shard-iclb: [PASS][20] -> [INCOMPLETE][21] ([i915#7017] / [i915#7057])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@kms_addfb_basic@legacy-format.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb5/igt@kms_addfb_basic@legacy-format.html
- shard-tglb: [PASS][22] -> [INCOMPLETE][23] ([i915#6987])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb5/igt@kms_addfb_basic@legacy-format.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-tglb5/igt@kms_addfb_basic@legacy-format.html
* igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1:
- shard-skl: [PASS][24] -> [FAIL][25] ([i915#2521])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl10/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl7/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
- shard-apl: [PASS][26] -> [SKIP][27] ([fdo#109271]) +25 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl8/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf_tiled_ccs:
- shard-apl: [PASS][28] -> [DMESG-WARN][29] ([i915#180] / [i915#5904] / [i915#62]) +12 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf_tiled_ccs.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf_tiled_ccs.html
* igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
- shard-skl: NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#3886]) +2 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl10/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_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#3886]) +2 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl2/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
- shard-glk: NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#3886])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk1/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][33] ([fdo#109271]) +69 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
- shard-glk: NOTRUN -> [SKIP][34] ([fdo#109271]) +27 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk1/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html
* igt@kms_chamelium@hdmi-hpd-storm:
- shard-apl: NOTRUN -> [SKIP][35] ([fdo#109271] / [fdo#111827]) +3 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl2/igt@kms_chamelium@hdmi-hpd-storm.html
- shard-glk: NOTRUN -> [SKIP][36] ([fdo#109271] / [fdo#111827])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk1/igt@kms_chamelium@hdmi-hpd-storm.html
* igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
- shard-skl: NOTRUN -> [SKIP][37] ([fdo#109271] / [fdo#111827]) +6 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl1/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html
* igt@kms_color@ctm-0-25:
- shard-skl: NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#3546])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl10/igt@kms_color@ctm-0-25.html
* igt@kms_cursor_crc@cursor-suspend@pipe-b-edp-1:
- shard-skl: [PASS][39] -> [INCOMPLETE][40] ([i915#4939])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl7/igt@kms_cursor_crc@cursor-suspend@pipe-b-edp-1.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl6/igt@kms_cursor_crc@cursor-suspend@pipe-b-edp-1.html
* igt@kms_cursor_legacy@flip-vs-cursor@varying-size:
- shard-skl: [PASS][41] -> [FAIL][42] ([i915#2346])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl5/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-apl: [PASS][43] -> [INCOMPLETE][44] ([i915#180] / [i915#4939])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl7/igt@kms_fbcon_fbt@fbc-suspend.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][45] -> [FAIL][46] ([i915#2122])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk6/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk9/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-skl: [PASS][47] -> [FAIL][48] ([i915#79])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl5/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip@plain-flip-ts-check@c-edp1:
- shard-skl: [PASS][49] -> [FAIL][50] ([i915#2122]) +2 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl4/igt@kms_flip@plain-flip-ts-check@c-edp1.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl6/igt@kms_flip@plain-flip-ts-check@c-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-default-mode:
- shard-iclb: [PASS][51] -> [SKIP][52] ([i915#3555])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-default-mode.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][53] ([i915#2672]) +2 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][54] ([i915#3555]) +2 similar issues
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-iclb: NOTRUN -> [SKIP][55] ([i915#2587] / [i915#2672]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-suspend:
- shard-skl: NOTRUN -> [SKIP][56] ([fdo#109271]) +155 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl10/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-dp-1:
- shard-apl: NOTRUN -> [FAIL][57] ([i915#4573]) +2 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-dp-1.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-b-edp-1:
- shard-skl: NOTRUN -> [FAIL][58] ([i915#4573]) +2 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl1/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-b-edp-1.html
* igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1:
- shard-iclb: [PASS][59] -> [SKIP][60] ([i915#5176]) +2 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1.html
* igt@kms_psr2_su@page_flip-p010@pipe-b-edp-1:
- shard-iclb: NOTRUN -> [FAIL][61] ([i915#5939]) +2 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_psr2_su@page_flip-p010@pipe-b-edp-1.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-skl: NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#658]) +2 similar issues
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl4/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][63] -> [SKIP][64] ([fdo#109441]) +1 similar issue
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb1/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-apl: [PASS][65] -> [DMESG-WARN][66] ([i915#180]) +3 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl8/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl8/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
* igt@kms_writeback@writeback-invalid-parameters:
- shard-skl: NOTRUN -> [SKIP][67] ([fdo#109271] / [i915#2437])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl10/igt@kms_writeback@writeback-invalid-parameters.html
* igt@sysfs_clients@create:
- shard-apl: NOTRUN -> [SKIP][68] ([fdo#109271] / [i915#2994])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@sysfs_clients@create.html
- shard-skl: NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#2994])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl1/igt@sysfs_clients@create.html
#### Possible fixes ####
* igt@gem_exec_balancer@parallel-balancer:
- shard-iclb: [SKIP][70] ([i915#4525]) -> [PASS][71]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb5/igt@gem_exec_balancer@parallel-balancer.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][72] ([i915#2842]) -> [PASS][73]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-tglb: [FAIL][74] ([i915#2842]) -> [PASS][75] +1 similar issue
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-tglb3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gen9_exec_parse@allowed-all:
- shard-skl: [DMESG-WARN][76] ([i915#5566] / [i915#716]) -> [PASS][77]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl10/igt@gen9_exec_parse@allowed-all.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl1/igt@gen9_exec_parse@allowed-all.html
- shard-apl: [DMESG-WARN][78] ([i915#5566] / [i915#716]) -> [PASS][79]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl2/igt@gen9_exec_parse@allowed-all.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@gen9_exec_parse@allowed-all.html
* igt@i915_pm_dc@dc9-dpms:
- shard-iclb: [SKIP][80] ([i915#4281]) -> [PASS][81]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_sseu@full-enable:
- shard-skl: [FAIL][82] ([i915#3524]) -> [PASS][83]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl5/igt@i915_pm_sseu@full-enable.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl9/igt@i915_pm_sseu@full-enable.html
* igt@kms_flip@busy-flip@c-edp1:
- shard-skl: [FAIL][84] -> [PASS][85] +1 similar issue
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl5/igt@kms_flip@busy-flip@c-edp1.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl9/igt@kms_flip@busy-flip@c-edp1.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-valid-mode:
- shard-glk: [FAIL][86] -> [PASS][87]
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-valid-mode.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk1/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode:
- shard-iclb: [SKIP][88] ([i915#3555]) -> [PASS][89]
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
- shard-apl: [DMESG-WARN][90] ([i915#180]) -> [PASS][91] +1 similar issue
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl2/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1:
- shard-iclb: [SKIP][92] ([i915#5235]) -> [PASS][93] +2 similar issues
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1.html
* igt@kms_psr@psr2_sprite_mmap_cpu:
- shard-iclb: [SKIP][94] ([fdo#109441]) -> [PASS][95]
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb5/igt@kms_psr@psr2_sprite_mmap_cpu.html
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_cpu.html
* igt@perf@polling-parameterized:
- shard-skl: [FAIL][96] ([i915#5639]) -> [PASS][97]
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl10/igt@perf@polling-parameterized.html
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-skl7/igt@perf@polling-parameterized.html
* igt@perf@stress-open-close:
- shard-glk: [INCOMPLETE][98] ([i915#5213]) -> [PASS][99]
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk1/igt@perf@stress-open-close.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-glk1/igt@perf@stress-open-close.html
#### Warnings ####
* igt@gem_exec_balancer@parallel-ordering:
- shard-iclb: [SKIP][100] ([i915#4525]) -> [FAIL][101] ([i915#6117])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@gem_exec_balancer@parallel-ordering.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@gem_exec_balancer@parallel-ordering.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
- shard-apl: [SKIP][102] ([fdo#109271] / [i915#3886]) -> [SKIP][103] ([fdo#109271]) +1 similar issue
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
- shard-iclb: [SKIP][104] ([i915#658]) -> [SKIP][105] ([i915#2920])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb5/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-iclb: [SKIP][106] ([i915#2920]) -> [SKIP][107] ([i915#658]) +1 similar issue
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb3/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
- shard-iclb: [SKIP][108] ([fdo#111068] / [i915#658]) -> [SKIP][109] ([i915#2920])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
* igt@runner@aborted:
- shard-apl: ([FAIL][110], [FAIL][111], [FAIL][112], [FAIL][113], [FAIL][114]) ([fdo#109271] / [i915#3002] / [i915#4312]) -> ([FAIL][115], [FAIL][116], [FAIL][117], [FAIL][118], [FAIL][119], [FAIL][120], [FAIL][121]) ([i915#180] / [i915#3002] / [i915#4312])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl2/igt@runner@aborted.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl6/igt@runner@aborted.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl8/igt@runner@aborted.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@runner@aborted.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@runner@aborted.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl1/igt@runner@aborted.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl8/igt@runner@aborted.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl2/igt@runner@aborted.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@runner@aborted.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl8/igt@runner@aborted.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl3/igt@runner@aborted.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/shard-apl6/igt@runner@aborted.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3524]: https://gitlab.freedesktop.org/drm/intel/issues/3524
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
[i915#5904]: https://gitlab.freedesktop.org/drm/intel/issues/5904
[i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939
[i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
[i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6987]: https://gitlab.freedesktop.org/drm/intel/issues/6987
[i915#7017]: https://gitlab.freedesktop.org/drm/intel/issues/7017
[i915#7036]: https://gitlab.freedesktop.org/drm/intel/issues/7036
[i915#7057]: https://gitlab.freedesktop.org/drm/intel/issues/7057
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Build changes
-------------
* Linux: CI_DRM_12242 -> Patchwork_109668v1
CI-20190529: 20190529
CI_DRM_12242: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7012: ca6f5bdd537d26692c4b1ca011b8c4f227d95703 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_109668v1: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109668v1/index.html
[-- Attachment #2: Type: text/html, Size: 35297 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked
2022-10-13 13:30 ` [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked Andrzej Hajda
@ 2022-10-21 15:39 ` Andi Shyti
2022-10-24 14:05 ` Andrzej Hajda
0 siblings, 1 reply; 12+ messages in thread
From: Andi Shyti @ 2022-10-21 15:39 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: intel-gfx, Lucas De Marchi, Matthew Auld, Rodrigo Vivi
Hi Andrzej,
[...]
> +static inline int __must_check
> +igt_vma_move_to_active_unlocked(struct i915_vma *vma, struct i915_request *rq,
> + unsigned int flags)
> +{
> + int err;
> +
> + i915_vma_lock(vma);
> + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
> + i915_vma_unlock(vma);
> + return err;
> +}
> +
there are calls to i915_vma_move_to_active also outside
selftests, why not having a i915_move_to_active_unlocked() in
i915_vma.h?
Besides here you break also the bisect, because between patch 1
and 2 the i915_move_to_avtive would also call
i915_request_await_object(). Right or am I getting confused?
Andi
[...]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active
2022-10-13 13:30 ` [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active Andrzej Hajda
2022-10-13 14:00 ` Tvrtko Ursulin
@ 2022-10-21 15:51 ` Andi Shyti
2022-10-24 13:45 ` Andrzej Hajda
1 sibling, 1 reply; 12+ messages in thread
From: Andi Shyti @ 2022-10-21 15:51 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: intel-gfx, Lucas De Marchi, Matthew Auld, Rodrigo Vivi
Hi Andrzej,
(at first I r-b'ed this patch, but then I wanted to think on some
more "simplification" (if it really simplifies things). Please
read the review in patch 2 first )
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> index 1cae24349a96fd..80e7fdd5d16427 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> @@ -565,10 +565,8 @@ static int make_obj_busy(struct drm_i915_gem_object *obj)
> goto err_unpin;
> }
>
> - err = i915_request_await_object(rq, vma->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(vma, rq,
> - EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(vma, rq,
> + EXEC_OBJECT_WRITE);
nit: don't need to break the line here.
>
> i915_request_add(rq);
> err_unpin:
[...]
> @@ -860,9 +854,7 @@ static int read_whitelisted_registers(struct intel_context *ce,
> return PTR_ERR(rq);
>
> i915_vma_lock(results);
> - err = i915_request_await_object(rq, results->obj, true);
> - if (err == 0)
> - err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
> + err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
> i915_vma_unlock(results);
> if (err)
> goto err_req;
> @@ -944,9 +936,7 @@ static int scrub_whitelisted_registers(struct intel_context *ce)
> }
>
> i915_vma_lock(batch);
> - err = i915_request_await_object(rq, batch->obj, false);
> - if (err == 0)
> - err = i915_vma_move_to_active(batch, rq, 0);
> + err = i915_vma_move_to_active(batch, rq, 0);
> i915_vma_unlock(batch);
The final risult would be:
i915_vma_lock();
i915_vma_move_to_active()
i915_vma_unlock();
and it's a pattern... as I suggested in patch 2, how about having
an:
i915_vma_move_to_active_unlocked()
and...
> if (err)
> goto err_request;
> diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
> index d6fe94cd0fdb61..b49098f045005e 100644
> --- a/drivers/gpu/drm/i915/gvt/scheduler.c
> +++ b/drivers/gpu/drm/i915/gvt/scheduler.c
> @@ -570,9 +570,8 @@ static int prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
> if (gmadr_bytes == 8)
> bb->bb_start_cmd_va[2] = 0;
>
> - ret = i915_vma_move_to_active(bb->vma,
> - workload->req,
> - 0);
> + ret = _i915_vma_move_to_active(bb->vma, workload->req,
> + &workload->req->fence, 0);
> if (ret)
> goto err;
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 15816df916c781..19138e99d2fd03 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -2015,9 +2015,7 @@ emit_oa_config(struct i915_perf_stream *stream,
> goto err_add_request;
> }
>
> - err = i915_request_await_object(rq, vma->obj, 0);
> - if (!err)
> - err = i915_vma_move_to_active(vma, rq, 0);
> + err = i915_vma_move_to_active(vma, rq, 0);
> if (err)
> goto err_add_request;
>
> diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
> index aecd9c64486b27..47ac5bd1ffcce6 100644
> --- a/drivers/gpu/drm/i915/i915_vma.h
> +++ b/drivers/gpu/drm/i915/i915_vma.h
> @@ -64,7 +64,11 @@ static inline int __must_check
> i915_vma_move_to_active(struct i915_vma *vma, struct i915_request *rq,
> unsigned int flags)
> {
> - return _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
> + int err = i915_request_await_object(rq, vma->obj, flags & EXEC_OBJECT_WRITE);
> +
> + if (!err)
> + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
> + return err;
> }
... this i915_vma_move_to_active() now it's doing more than just
moving to active but it's also waiting on dma fences, shall we
call it i915_vma_move_to_active_async() or silimar? (I'm not good
at giving names).
The above would be i915_vma_move_to_active_async_unlocked(). Too
long? More complex?
We would have something like:
i915_vma_move_to_active() /* not used */
i915_vma_move_to_active_unlocked()
i915_vma_move_to_active_async()
i915_vma_move_to_active_async_unlocked()
Anyway as it is looks good, I didn't spot any error in the
conversion:
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Andi
[...]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active
2022-10-21 15:51 ` Andi Shyti
@ 2022-10-24 13:45 ` Andrzej Hajda
0 siblings, 0 replies; 12+ messages in thread
From: Andrzej Hajda @ 2022-10-24 13:45 UTC (permalink / raw)
To: Andi Shyti; +Cc: intel-gfx, Lucas De Marchi, Matthew Auld, Rodrigo Vivi
Hi Andi,
Thx for looking at it.
On 21.10.2022 17:51, Andi Shyti wrote:
> Hi Andrzej,
>
> (at first I r-b'ed this patch, but then I wanted to think on some
> more "simplification" (if it really simplifies things). Please
> read the review in patch 2 first )
This is v1, there is already v2.
I will reply here to your comments with v2 in mind.
>
>> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> index 1cae24349a96fd..80e7fdd5d16427 100644
>> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> @@ -565,10 +565,8 @@ static int make_obj_busy(struct drm_i915_gem_object *obj)
>> goto err_unpin;
>> }
>>
>> - err = i915_request_await_object(rq, vma->obj, true);
>> - if (err == 0)
>> - err = i915_vma_move_to_active(vma, rq,
>> - EXEC_OBJECT_WRITE);
>> + err = i915_vma_move_to_active(vma, rq,
>> + EXEC_OBJECT_WRITE);
>
> nit: don't need to break the line here.
Corrected in v2.
>
>>
>> i915_request_add(rq);
>> err_unpin:
>
> [...]
>
>> @@ -860,9 +854,7 @@ static int read_whitelisted_registers(struct intel_context *ce,
>> return PTR_ERR(rq);
>>
>> i915_vma_lock(results);
>> - err = i915_request_await_object(rq, results->obj, true);
>> - if (err == 0)
>> - err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
>> + err = i915_vma_move_to_active(results, rq, EXEC_OBJECT_WRITE);
>> i915_vma_unlock(results);
>> if (err)
>> goto err_req;
>> @@ -944,9 +936,7 @@ static int scrub_whitelisted_registers(struct intel_context *ce)
>> }
>>
>> i915_vma_lock(batch);
>> - err = i915_request_await_object(rq, batch->obj, false);
>> - if (err == 0)
>> - err = i915_vma_move_to_active(batch, rq, 0);
>> + err = i915_vma_move_to_active(batch, rq, 0);
>> i915_vma_unlock(batch);
>
> The final risult would be:
>
> i915_vma_lock();
> i915_vma_move_to_active()
> i915_vma_unlock();
>
> and it's a pattern... as I suggested in patch 2, how about having
> an:
>
> i915_vma_move_to_active_unlocked()
There is igt_vma_move_to_active_unlocked in patch 2. Chris suggested to
limit this helper to selftests, as this pattern is specific to selftests
and should not be exposed as 'internal API'.
>
> and...
>
>> if (err)
>> goto err_request;
>> diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
>> index d6fe94cd0fdb61..b49098f045005e 100644
>> --- a/drivers/gpu/drm/i915/gvt/scheduler.c
>> +++ b/drivers/gpu/drm/i915/gvt/scheduler.c
>> @@ -570,9 +570,8 @@ static int prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
>> if (gmadr_bytes == 8)
>> bb->bb_start_cmd_va[2] = 0;
>>
>> - ret = i915_vma_move_to_active(bb->vma,
>> - workload->req,
>> - 0);
>> + ret = _i915_vma_move_to_active(bb->vma, workload->req,
>> + &workload->req->fence, 0);
>> if (ret)
>> goto err;
>>
>> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
>> index 15816df916c781..19138e99d2fd03 100644
>> --- a/drivers/gpu/drm/i915/i915_perf.c
>> +++ b/drivers/gpu/drm/i915/i915_perf.c
>> @@ -2015,9 +2015,7 @@ emit_oa_config(struct i915_perf_stream *stream,
>> goto err_add_request;
>> }
>>
>> - err = i915_request_await_object(rq, vma->obj, 0);
>> - if (!err)
>> - err = i915_vma_move_to_active(vma, rq, 0);
>> + err = i915_vma_move_to_active(vma, rq, 0);
>> if (err)
>> goto err_add_request;
>>
>> diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
>> index aecd9c64486b27..47ac5bd1ffcce6 100644
>> --- a/drivers/gpu/drm/i915/i915_vma.h
>> +++ b/drivers/gpu/drm/i915/i915_vma.h
>> @@ -64,7 +64,11 @@ static inline int __must_check
>> i915_vma_move_to_active(struct i915_vma *vma, struct i915_request *rq,
>> unsigned int flags)
>> {
>> - return _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
>> + int err = i915_request_await_object(rq, vma->obj, flags & EXEC_OBJECT_WRITE);
>> +
>> + if (!err)
>> + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
>> + return err;
>> }
>
> ... this i915_vma_move_to_active() now it's doing more than just
> moving to active but it's also waiting on dma fences, shall we
> call it i915_vma_move_to_active_async() or silimar? (I'm not good
> at giving names).
I do not feel an expert in this area, but for example
__i915_vma_move_to_active also calls __i915_request_await_bind and then
moves to active (so awaits are there anyway).
In v2 this was handled by putting i915_request_await_object to
_i915_vma_move_to_active and added no_await flag.
Regards
Andrzej
>
> The above would be i915_vma_move_to_active_async_unlocked(). Too
> long? More complex?
>
> We would have something like:
>
> i915_vma_move_to_active() /* not used */
> i915_vma_move_to_active_unlocked()
> i915_vma_move_to_active_async()
> i915_vma_move_to_active_async_unlocked()
>
> Anyway as it is looks good, I didn't spot any error in the
> conversion:
>
> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
>
> Andi
>
> [...]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked
2022-10-21 15:39 ` Andi Shyti
@ 2022-10-24 14:05 ` Andrzej Hajda
2022-10-24 15:08 ` Andi Shyti
0 siblings, 1 reply; 12+ messages in thread
From: Andrzej Hajda @ 2022-10-24 14:05 UTC (permalink / raw)
To: Andi Shyti; +Cc: intel-gfx, Lucas De Marchi, Matthew Auld, Rodrigo Vivi
On 21.10.2022 17:39, Andi Shyti wrote:
> Hi Andrzej,
>
> [...]
>
>> +static inline int __must_check
>> +igt_vma_move_to_active_unlocked(struct i915_vma *vma, struct i915_request *rq,
>> + unsigned int flags)
>> +{
>> + int err;
>> +
>> + i915_vma_lock(vma);
>> + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
>> + i915_vma_unlock(vma);
>> + return err;
>> +}
>> +
>
> there are calls to i915_vma_move_to_active also outside
> selftests, why not having a i915_move_to_active_unlocked() in
> i915_vma.h?
As I said before, Chris suggested real users of this call should use
locking explicitly.
>
> Besides here you break also the bisect, because between patch 1
> and 2 the i915_move_to_avtive would also call
> i915_request_await_object(). Right or am I getting confused?
Hmm, looking at v2, I do not see breakage. Patch 1 moves all occurrences
of i915_request_await_object inside i915_vma_move_to_active.
Patch 2, just replaces sequence of calls with call to new helper.
Regards
Andrzej
>
> Andi
>
> [...]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked
2022-10-24 14:05 ` Andrzej Hajda
@ 2022-10-24 15:08 ` Andi Shyti
2022-10-28 13:42 ` Andrzej Hajda
0 siblings, 1 reply; 12+ messages in thread
From: Andi Shyti @ 2022-10-24 15:08 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: intel-gfx, Lucas De Marchi, Matthew Auld, Rodrigo Vivi
Hi Andrzej,
On Mon, Oct 24, 2022 at 04:05:57PM +0200, Andrzej Hajda wrote:
> On 21.10.2022 17:39, Andi Shyti wrote:
> > Hi Andrzej,
> >
> > [...]
> >
> > > +static inline int __must_check
> > > +igt_vma_move_to_active_unlocked(struct i915_vma *vma, struct i915_request *rq,
> > > + unsigned int flags)
> > > +{
> > > + int err;
> > > +
> > > + i915_vma_lock(vma);
> > > + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
> > > + i915_vma_unlock(vma);
> > > + return err;
> > > +}
> > > +
> >
> > there are calls to i915_vma_move_to_active also outside
> > selftests, why not having a i915_move_to_active_unlocked() in
> > i915_vma.h?
>
> As I said before, Chris suggested real users of this call should use locking
> explicitly.
Yeah, sure... I was just thinking about it... no big opinion,
besides I don't hink my proposal in Patch 1 makes things easier.
> > Besides here you break also the bisect, because between patch 1
> > and 2 the i915_move_to_avtive would also call
> > i915_request_await_object(). Right or am I getting confused?
>
> Hmm, looking at v2, I do not see breakage. Patch 1 moves all occurrences of
> i915_request_await_object inside i915_vma_move_to_active.
> Patch 2, just replaces sequence of calls with call to new helper.
Are you sure?
I might be getting confused, but in Patch 1
"i915_vma_move_to_active()" takes "i915_request_await_object()"
inside. This affects all the calls to "i915_vma_move_to_active()"
in the selftests that are not actually requesting
"i915_request_await_object()".
We need to wait for Patch 2 in order to have a local redefinition
of "i915_vma_move_to_active()" for those selftests.
Andi
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked
2022-10-24 15:08 ` Andi Shyti
@ 2022-10-28 13:42 ` Andrzej Hajda
0 siblings, 0 replies; 12+ messages in thread
From: Andrzej Hajda @ 2022-10-28 13:42 UTC (permalink / raw)
To: Andi Shyti; +Cc: intel-gfx, Lucas De Marchi, Matthew Auld, Rodrigo Vivi
On 24.10.2022 17:08, Andi Shyti wrote:
> Hi Andrzej,
>
> On Mon, Oct 24, 2022 at 04:05:57PM +0200, Andrzej Hajda wrote:
>> On 21.10.2022 17:39, Andi Shyti wrote:
>>> Hi Andrzej,
>>>
>>> [...]
>>>
>>>> +static inline int __must_check
>>>> +igt_vma_move_to_active_unlocked(struct i915_vma *vma, struct i915_request *rq,
>>>> + unsigned int flags)
>>>> +{
>>>> + int err;
>>>> +
>>>> + i915_vma_lock(vma);
>>>> + err = _i915_vma_move_to_active(vma, rq, &rq->fence, flags);
>>>> + i915_vma_unlock(vma);
>>>> + return err;
>>>> +}
>>>> +
>>>
>>> there are calls to i915_vma_move_to_active also outside
>>> selftests, why not having a i915_move_to_active_unlocked() in
>>> i915_vma.h?
>>
>> As I said before, Chris suggested real users of this call should use locking
>> explicitly.
>
> Yeah, sure... I was just thinking about it... no big opinion,
> besides I don't hink my proposal in Patch 1 makes things easier.
>
>>> Besides here you break also the bisect, because between patch 1
>>> and 2 the i915_move_to_avtive would also call
>>> i915_request_await_object(). Right or am I getting confused?
>>
>> Hmm, looking at v2, I do not see breakage. Patch 1 moves all occurrences of
>> i915_request_await_object inside i915_vma_move_to_active.
>> Patch 2, just replaces sequence of calls with call to new helper.
>
> Are you sure?
>
> I might be getting confused, but in Patch 1
> "i915_vma_move_to_active()" takes "i915_request_await_object()"
> inside. This affects all the calls to "i915_vma_move_to_active()"
> in the selftests that are not actually requesting
> "i915_request_await_object()".
Apparently I've forgot to answer this comment. Let's do it now.
Currently every call to i915_vma_move_to_active is prepended with
i915_request_await_object, the only exception is
prepare_shadow_batch_buffer.
And selftests always calls i915_request_await_object before either
directly, either via move_to_active helpers.
Patch 1 transforms all these calls, so maybe looking at patch2 confuses you?
I have double checked things, did not find any issue.
If I missed sth please let me know.
>
> We need to wait for Patch 2 in order to have a local redefinition
> of "i915_vma_move_to_active()" for those selftests.
And this does not seems to be true, patch 1 alone is independent.
Regards
Andrzej
>
> Andi
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-10-28 13:42 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-13 13:29 [Intel-gfx] [PATCH 0/2] drm/i915: refactor 915_vma_move_to_active Andrzej Hajda
2022-10-13 13:30 ` [Intel-gfx] [PATCH 1/2] drm/i915: add wait and lock to i915_vma_move_to_active Andrzej Hajda
2022-10-13 14:00 ` Tvrtko Ursulin
2022-10-21 15:51 ` Andi Shyti
2022-10-24 13:45 ` Andrzej Hajda
2022-10-13 13:30 ` [Intel-gfx] [PATCH 2/2] drm/i915/selftests: add igt_vma_move_to_active_unlocked Andrzej Hajda
2022-10-21 15:39 ` Andi Shyti
2022-10-24 14:05 ` Andrzej Hajda
2022-10-24 15:08 ` Andi Shyti
2022-10-28 13:42 ` Andrzej Hajda
2022-10-13 15:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: refactor 915_vma_move_to_active Patchwork
2022-10-13 17:24 ` [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