Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/selftests: Pass intel_context to mock_request

Modernise the mock_request factory to take intel_context not a (GEM
context, intel_engine_cs) tuple.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190808115640.20552-1-chris@chris-wilson.co.uk

+25 -23
+22 -16
drivers/gpu/drm/i915/selftests/i915_request.c
··· 46 46 /* Basic preliminary test to create a request and let it loose! */ 47 47 48 48 mutex_lock(&i915->drm.struct_mutex); 49 - request = mock_request(i915->engine[RCS0], 50 - i915->kernel_context, 51 - HZ / 10); 49 + request = mock_request(i915->engine[RCS0]->kernel_context, HZ / 10); 52 50 if (!request) 53 51 goto out_unlock; 54 52 ··· 68 70 /* Submit a request, then wait upon it */ 69 71 70 72 mutex_lock(&i915->drm.struct_mutex); 71 - request = mock_request(i915->engine[RCS0], i915->kernel_context, T); 73 + request = mock_request(i915->engine[RCS0]->kernel_context, T); 72 74 if (!request) { 73 75 err = -ENOMEM; 74 76 goto out_unlock; ··· 141 143 /* Submit a request, treat it as a fence and wait upon it */ 142 144 143 145 mutex_lock(&i915->drm.struct_mutex); 144 - request = mock_request(i915->engine[RCS0], i915->kernel_context, T); 146 + request = mock_request(i915->engine[RCS0]->kernel_context, T); 145 147 if (!request) { 146 148 err = -ENOMEM; 147 149 goto out_locked; ··· 194 196 struct drm_i915_private *i915 = arg; 195 197 struct i915_request *request, *vip; 196 198 struct i915_gem_context *ctx[2]; 199 + struct intel_context *ce; 197 200 int err = -EINVAL; 198 201 199 202 mutex_lock(&i915->drm.struct_mutex); 200 203 ctx[0] = mock_context(i915, "A"); 201 - request = mock_request(i915->engine[RCS0], ctx[0], 2 * HZ); 204 + ce = i915_gem_context_get_engine(ctx[0], RCS0); 205 + GEM_BUG_ON(IS_ERR(ce)); 206 + request = mock_request(ce, 2 * HZ); 207 + intel_context_put(ce); 202 208 if (!request) { 203 209 err = -ENOMEM; 204 210 goto err_context_0; ··· 212 210 i915_request_add(request); 213 211 214 212 ctx[1] = mock_context(i915, "B"); 215 - vip = mock_request(i915->engine[RCS0], ctx[1], 0); 213 + ce = i915_gem_context_get_engine(ctx[1], RCS0); 214 + GEM_BUG_ON(IS_ERR(ce)); 215 + vip = mock_request(ce, 0); 216 + intel_context_put(ce); 216 217 if (!vip) { 217 218 err = -ENOMEM; 218 219 goto err_context_1; ··· 264 259 struct i915_gem_context **contexts; 265 260 atomic_long_t num_waits, num_fences; 266 261 int ncontexts, max_batch; 267 - struct i915_request *(*request_alloc)(struct i915_gem_context *, 268 - struct intel_engine_cs *); 262 + struct i915_request *(*request_alloc)(struct intel_context *ce); 269 263 }; 270 264 271 265 static struct i915_request * 272 - __mock_request_alloc(struct i915_gem_context *ctx, 273 - struct intel_engine_cs *engine) 266 + __mock_request_alloc(struct intel_context *ce) 274 267 { 275 - return mock_request(engine, ctx, 0); 268 + return mock_request(ce, 0); 276 269 } 277 270 278 271 static struct i915_request * 279 - __live_request_alloc(struct i915_gem_context *ctx, 280 - struct intel_engine_cs *engine) 272 + __live_request_alloc(struct intel_context *ce) 281 273 { 282 - return igt_request_alloc(ctx, engine); 274 + return intel_context_create_request(ce); 283 275 } 284 276 285 277 static int __igt_breadcrumbs_smoketest(void *arg) ··· 335 333 struct i915_gem_context *ctx = 336 334 t->contexts[order[n] % t->ncontexts]; 337 335 struct i915_request *rq; 336 + struct intel_context *ce; 338 337 339 338 mutex_lock(BKL); 340 339 341 - rq = t->request_alloc(ctx, t->engine); 340 + ce = i915_gem_context_get_engine(ctx, t->engine->id); 341 + GEM_BUG_ON(IS_ERR(ce)); 342 + rq = t->request_alloc(ce); 343 + intel_context_put(ce); 342 344 if (IS_ERR(rq)) { 343 345 mutex_unlock(BKL); 344 346 err = PTR_ERR(rq);
+2 -4
drivers/gpu/drm/i915/selftests/mock_request.c
··· 28 28 #include "mock_request.h" 29 29 30 30 struct i915_request * 31 - mock_request(struct intel_engine_cs *engine, 32 - struct i915_gem_context *context, 33 - unsigned long delay) 31 + mock_request(struct intel_context *ce, unsigned long delay) 34 32 { 35 33 struct i915_request *request; 36 34 37 35 /* NB the i915->requests slab cache is enlarged to fit mock_request */ 38 - request = igt_request_alloc(context, engine); 36 + request = intel_context_create_request(ce); 39 37 if (IS_ERR(request)) 40 38 return NULL; 41 39
+1 -3
drivers/gpu/drm/i915/selftests/mock_request.h
··· 30 30 #include "../i915_request.h" 31 31 32 32 struct i915_request * 33 - mock_request(struct intel_engine_cs *engine, 34 - struct i915_gem_context *context, 35 - unsigned long delay); 33 + mock_request(struct intel_context *ce, unsigned long delay); 36 34 37 35 bool mock_cancel_request(struct i915_request *request); 38 36