Skip to content

Commit 2a76fc8

Browse files
ahajdamatt-auld
authored andcommitted
drm/i915: call i915_request_await_object from _i915_vma_move_to_active
Since almost all calls to i915_vma_move_to_active are prepended with i915_request_await_object, let's call the latter from _i915_vma_move_to_active by default and add flag allowing bypassing it. Adjust all callers accordingly. The patch should not introduce functional changes. Signed-off-by: Andrzej Hajda <[email protected]> Acked-by: Tvrtko Ursulin <[email protected]> Reviewed-by: Matthew Auld <[email protected]> Signed-off-by: Matthew Auld <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 5664561 commit 2a76fc8

20 files changed

+53
-120
lines changed

drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ enum {
5353
#define DBG_FORCE_RELOC 0 /* choose one of the above! */
5454
};
5555

56-
/* __EXEC_OBJECT_NO_RESERVE is BIT(31), defined in i915_vma.h */
57-
#define __EXEC_OBJECT_HAS_PIN BIT(30)
58-
#define __EXEC_OBJECT_HAS_FENCE BIT(29)
59-
#define __EXEC_OBJECT_USERPTR_INIT BIT(28)
60-
#define __EXEC_OBJECT_NEEDS_MAP BIT(27)
61-
#define __EXEC_OBJECT_NEEDS_BIAS BIT(26)
62-
#define __EXEC_OBJECT_INTERNAL_FLAGS (~0u << 26) /* all of the above + */
56+
/* __EXEC_OBJECT_ flags > BIT(29) defined in i915_vma.h */
57+
#define __EXEC_OBJECT_HAS_PIN BIT(29)
58+
#define __EXEC_OBJECT_HAS_FENCE BIT(28)
59+
#define __EXEC_OBJECT_USERPTR_INIT BIT(27)
60+
#define __EXEC_OBJECT_NEEDS_MAP BIT(26)
61+
#define __EXEC_OBJECT_NEEDS_BIAS BIT(25)
62+
#define __EXEC_OBJECT_INTERNAL_FLAGS (~0u << 25) /* all of the above + */
6363
#define __EXEC_OBJECT_RESERVED (__EXEC_OBJECT_HAS_PIN | __EXEC_OBJECT_HAS_FENCE)
6464

6565
#define __EXEC_HAS_RELOC BIT(31)
@@ -2101,7 +2101,8 @@ static int eb_move_to_gpu(struct i915_execbuffer *eb)
21012101
eb->composite_fence ?
21022102
eb->composite_fence :
21032103
&eb->requests[j]->fence,
2104-
flags | __EXEC_OBJECT_NO_RESERVE);
2104+
flags | __EXEC_OBJECT_NO_RESERVE |
2105+
__EXEC_OBJECT_NO_REQUEST_AWAIT);
21052106
}
21062107
}
21072108

drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,9 +464,7 @@ static int move_to_active(struct i915_vma *vma,
464464
int err;
465465

466466
i915_vma_lock(vma);
467-
err = i915_request_await_object(rq, vma->obj, false);
468-
if (err == 0)
469-
err = i915_vma_move_to_active(vma, rq, flags);
467+
err = i915_vma_move_to_active(vma, rq, flags);
470468
i915_vma_unlock(vma);
471469

472470
return err;

drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,7 @@ static int gpu_set(struct context *ctx, unsigned long offset, u32 v)
239239
}
240240
intel_ring_advance(rq, cs);
241241

242-
err = i915_request_await_object(rq, vma->obj, true);
243-
if (err == 0)
244-
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
242+
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
245243

246244
out_rq:
247245
i915_request_add(rq);

drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -984,15 +984,11 @@ emit_rpcs_query(struct drm_i915_gem_object *obj,
984984
goto err_batch;
985985
}
986986

987-
err = i915_request_await_object(rq, batch->obj, false);
988-
if (err == 0)
989-
err = i915_vma_move_to_active(batch, rq, 0);
987+
err = i915_vma_move_to_active(batch, rq, 0);
990988
if (err)
991989
goto skip_request;
992990

993-
err = i915_request_await_object(rq, vma->obj, true);
994-
if (err == 0)
995-
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
991+
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
996992
if (err)
997993
goto skip_request;
998994

@@ -1553,9 +1549,7 @@ static int write_to_scratch(struct i915_gem_context *ctx,
15531549
}
15541550

15551551
i915_vma_lock(vma);
1556-
err = i915_request_await_object(rq, vma->obj, false);
1557-
if (err == 0)
1558-
err = i915_vma_move_to_active(vma, rq, 0);
1552+
err = i915_vma_move_to_active(vma, rq, 0);
15591553
i915_vma_unlock(vma);
15601554
if (err)
15611555
goto skip_request;
@@ -1689,9 +1683,7 @@ static int read_from_scratch(struct i915_gem_context *ctx,
16891683
}
16901684

16911685
i915_vma_lock(vma);
1692-
err = i915_request_await_object(rq, vma->obj, true);
1693-
if (err == 0)
1694-
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
1686+
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
16951687
i915_vma_unlock(vma);
16961688
if (err)
16971689
goto skip_request;

drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -565,10 +565,8 @@ static int make_obj_busy(struct drm_i915_gem_object *obj)
565565
goto err_unpin;
566566
}
567567

568-
err = i915_request_await_object(rq, vma->obj, true);
569-
if (err == 0)
570-
err = i915_vma_move_to_active(vma, rq,
571-
EXEC_OBJECT_WRITE);
568+
err = i915_vma_move_to_active(vma, rq,
569+
EXEC_OBJECT_WRITE);
572570

573571
i915_request_add(rq);
574572
err_unpin:
@@ -1608,9 +1606,7 @@ static int __igt_mmap_gpu(struct drm_i915_private *i915,
16081606
goto out_unpin;
16091607
}
16101608

1611-
err = i915_request_await_object(rq, vma->obj, false);
1612-
if (err == 0)
1613-
err = i915_vma_move_to_active(vma, rq, 0);
1609+
err = i915_vma_move_to_active(vma, rq, 0);
16141610

16151611
err = engine->emit_bb_start(rq, vma->node.start, 0, 0);
16161612
i915_request_get(rq);

drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,13 @@ int igt_gpu_fill_dw(struct intel_context *ce,
131131
}
132132

133133
i915_vma_lock(batch);
134-
err = i915_request_await_object(rq, batch->obj, false);
135-
if (err == 0)
136-
err = i915_vma_move_to_active(batch, rq, 0);
134+
err = i915_vma_move_to_active(batch, rq, 0);
137135
i915_vma_unlock(batch);
138136
if (err)
139137
goto skip_request;
140138

141139
i915_vma_lock(vma);
142-
err = i915_request_await_object(rq, vma->obj, true);
143-
if (err == 0)
144-
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
140+
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
145141
i915_vma_unlock(vma);
146142
if (err)
147143
goto skip_request;

drivers/gpu/drm/i915/gt/intel_renderstate.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,7 @@ int intel_renderstate_emit(struct intel_renderstate *so,
215215
if (!so->vma)
216216
return 0;
217217

218-
err = i915_request_await_object(rq, so->vma->obj, false);
219-
if (err == 0)
220-
err = i915_vma_move_to_active(so->vma, rq, 0);
218+
err = i915_vma_move_to_active(so->vma, rq, 0);
221219
if (err)
222220
return err;
223221

drivers/gpu/drm/i915/gt/intel_workarounds.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3189,9 +3189,7 @@ static int engine_wa_list_verify(struct intel_context *ce,
31893189
goto err_vma;
31903190
}
31913191

3192-
err = i915_request_await_object(rq, vma->obj, true);
3193-
if (err == 0)
3194-
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
3192+
err = i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE);
31953193
if (err == 0)
31963194
err = wa_list_srm(rq, wal, vma);
31973195

drivers/gpu/drm/i915/gt/selftest_execlists.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2764,9 +2764,7 @@ static int create_gang(struct intel_engine_cs *engine,
27642764
i915_request_get(rq);
27652765

27662766
i915_vma_lock(vma);
2767-
err = i915_request_await_object(rq, vma->obj, false);
2768-
if (!err)
2769-
err = i915_vma_move_to_active(vma, rq, 0);
2767+
err = i915_vma_move_to_active(vma, rq, 0);
27702768
if (!err)
27712769
err = rq->engine->emit_bb_start(rq,
27722770
vma->node.start,
@@ -3180,14 +3178,10 @@ create_gpr_client(struct intel_engine_cs *engine,
31803178
}
31813179

31823180
i915_vma_lock(vma);
3183-
err = i915_request_await_object(rq, vma->obj, false);
3184-
if (!err)
3185-
err = i915_vma_move_to_active(vma, rq, 0);
3181+
err = i915_vma_move_to_active(vma, rq, 0);
31863182
i915_vma_unlock(vma);
31873183

31883184
i915_vma_lock(batch);
3189-
if (!err)
3190-
err = i915_request_await_object(rq, batch->obj, false);
31913185
if (!err)
31923186
err = i915_vma_move_to_active(batch, rq, 0);
31933187
if (!err)
@@ -3521,9 +3515,7 @@ static int smoke_submit(struct preempt_smoke *smoke,
35213515

35223516
if (vma) {
35233517
i915_vma_lock(vma);
3524-
err = i915_request_await_object(rq, vma->obj, false);
3525-
if (!err)
3526-
err = i915_vma_move_to_active(vma, rq, 0);
3518+
err = i915_vma_move_to_active(vma, rq, 0);
35273519
if (!err)
35283520
err = rq->engine->emit_bb_start(rq,
35293521
vma->node.start,

drivers/gpu/drm/i915/gt/selftest_hangcheck.c

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,7 @@ static int move_to_active(struct i915_vma *vma,
106106
int err;
107107

108108
i915_vma_lock(vma);
109-
err = i915_request_await_object(rq, vma->obj,
110-
flags & EXEC_OBJECT_WRITE);
111-
if (err == 0)
112-
err = i915_vma_move_to_active(vma, rq, flags);
109+
err = i915_vma_move_to_active(vma, rq, flags);
113110
i915_vma_unlock(vma);
114111

115112
return err;
@@ -1520,15 +1517,9 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
15201517
}
15211518

15221519
i915_vma_lock(arg.vma);
1523-
err = i915_request_await_object(rq, arg.vma->obj,
1524-
flags & EXEC_OBJECT_WRITE);
1525-
if (err == 0) {
1526-
err = i915_vma_move_to_active(arg.vma, rq, flags);
1527-
if (err)
1528-
pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
1529-
} else {
1530-
pr_err("[%s] Request await failed: %d!\n", engine->name, err);
1531-
}
1520+
err = i915_vma_move_to_active(arg.vma, rq, flags);
1521+
if (err)
1522+
pr_err("[%s] Move to active failed: %d!\n", engine->name, err);
15321523

15331524
i915_vma_unlock(arg.vma);
15341525

0 commit comments

Comments
 (0)