[PATCH 46/60] gfp-req
Chris Wilson
chris at chris-wilson.co.uk
Sun Jul 1 10:21:15 UTC 2018
---
drivers/gpu/drm/i915/gvt/scheduler.c | 2 +-
drivers/gpu/drm/i915/i915_gem.c | 2 +-
drivers/gpu/drm/i915/i915_gem_context.c | 4 +++-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 ++--
drivers/gpu/drm/i915/i915_perf.c | 2 +-
drivers/gpu/drm/i915/i915_request.c | 8 +++++---
drivers/gpu/drm/i915/i915_request.h | 3 ++-
drivers/gpu/drm/i915/i915_reset.c | 4 +++-
drivers/gpu/drm/i915/intel_overlay.c | 6 +++---
drivers/gpu/drm/i915/selftests/huge_pages.c | 2 +-
.../gpu/drm/i915/selftests/i915_gem_coherency.c | 4 +++-
drivers/gpu/drm/i915/selftests/i915_gem_context.c | 4 ++--
drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 2 +-
drivers/gpu/drm/i915/selftests/i915_gem_object.c | 4 +++-
drivers/gpu/drm/i915/selftests/i915_request.c | 15 +++++++++++----
drivers/gpu/drm/i915/selftests/intel_hangcheck.c | 4 ++--
drivers/gpu/drm/i915/selftests/intel_lrc.c | 6 ++++--
.../gpu/drm/i915/selftests/intel_workarounds.c | 4 ++--
drivers/gpu/drm/i915/selftests/mock_request.c | 2 +-
19 files changed, 51 insertions(+), 31 deletions(-)
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index b0e566956b8d..2da2e5baafaa 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -387,7 +387,7 @@ int intel_gvt_scan_and_shadow_workload(struct intel_vgpu_workload *workload)
goto err_shadow;
}
- rq = i915_request_alloc(engine, shadow_ctx);
+ rq = i915_request_alloc(engine, shadow_ctx, GFP_KERNEL);
if (IS_ERR(rq)) {
gvt_vgpu_err("fail to allocate gem request\n");
ret = PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 103de4759b3c..bcdb145ece55 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4934,7 +4934,7 @@ static int __intel_engines_record_defaults(struct drm_i915_private *i915)
for_each_engine(engine, i915, id) {
struct i915_request *rq;
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
if (IS_ERR(rq)) {
err = PTR_ERR(rq);
goto out_ctx;
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index 0f43083a80e2..c8a30bfa7c1e 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -761,7 +761,9 @@ int i915_gem_switch_to_kernel_context(struct drm_i915_private *i915)
GEM_TRACE("emit barrier on %s\n", engine->name);
- rq = i915_request_alloc(engine, i915->kernel_context);
+ rq = i915_request_alloc(engine,
+ i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(rq))
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 62721ddd5bee..2021de82ba50 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1150,7 +1150,7 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
if (err)
goto err_unmap;
- rq = i915_request_alloc(eb->engine, eb->ctx);
+ rq = i915_request_alloc(eb->engine, eb->ctx, GFP_KERNEL);
if (IS_ERR(rq)) {
err = PTR_ERR(rq);
goto err_unpin;
@@ -2377,7 +2377,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
GEM_BUG_ON(eb.reloc_cache.rq);
/* Allocate a request for this batch buffer nice and early. */
- eb.request = i915_request_alloc(eb.engine, eb.ctx);
+ eb.request = i915_request_alloc(eb.engine, eb.ctx, GFP_KERNEL);
if (IS_ERR(eb.request)) {
err = PTR_ERR(eb.request);
goto err_batch_unpin;
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 447407fee3b8..c5ffb7ad020c 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -1759,7 +1759,7 @@ static int gen8_switch_to_updated_kernel_context(struct drm_i915_private *dev_pr
i915_retire_requests(dev_priv);
- rq = i915_request_alloc(engine, dev_priv->kernel_context);
+ rq = i915_request_alloc(engine, dev_priv->kernel_context, GFP_KERNEL);
if (IS_ERR(rq))
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index f00d59df3034..efa4a2682d9e 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -608,7 +608,9 @@ submit_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state)
* or an error code if not.
*/
struct i915_request *
-i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx)
+i915_request_alloc(struct intel_engine_cs *engine,
+ struct i915_gem_context *ctx,
+ gfp_t gfp)
{
struct drm_i915_private *i915 = engine->i915;
struct i915_request *rq;
@@ -678,7 +680,7 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx)
* Do not use kmem_cache_zalloc() here!
*/
rq = kmem_cache_alloc(i915->requests,
- GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ gfp | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (unlikely(!rq)) {
/* Ratelimit ourselves to prevent oom from malicious clients */
ret = i915_gem_wait_for_idle(i915,
@@ -698,7 +700,7 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx)
kmem_cache_shrink(i915->requests);
rcu_barrier(); /* Recover the TYPESAFE_BY_RCU pages */
- rq = kmem_cache_alloc(i915->requests, GFP_KERNEL);
+ rq = kmem_cache_alloc(i915->requests, gfp);
if (!rq) {
ret = -ENOMEM;
goto err_unreserve;
diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h
index 74b8d416b9e9..b02e31d6e5bd 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -196,7 +196,8 @@ static inline bool dma_fence_is_i915(const struct dma_fence *fence)
struct i915_request * __must_check
i915_request_alloc(struct intel_engine_cs *engine,
- struct i915_gem_context *ctx);
+ struct i915_gem_context *ctx,
+ gfp_t gfp);
void i915_request_retire_upto(struct i915_request *rq);
static inline struct i915_request *
diff --git a/drivers/gpu/drm/i915/i915_reset.c b/drivers/gpu/drm/i915/i915_reset.c
index cdbc72c1e4e7..fde8b2013093 100644
--- a/drivers/gpu/drm/i915/i915_reset.c
+++ b/drivers/gpu/drm/i915/i915_reset.c
@@ -573,7 +573,9 @@ static void restart_work(struct work_struct *work)
if (!intel_engine_is_idle(engine))
continue;
- rq = i915_request_alloc(engine, i915->kernel_context);
+ rq = i915_request_alloc(engine,
+ i915->kernel_context,
+ GFP_KERNEL);
if (!IS_ERR(rq))
i915_request_add(rq);
}
diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
index 371eb3dbedc0..fecb0eb684ca 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
+++ b/drivers/gpu/drm/i915/intel_overlay.c
@@ -256,10 +256,10 @@ static int intel_overlay_do_wait_request(struct intel_overlay *overlay,
static struct i915_request *alloc_request(struct intel_overlay *overlay)
{
- struct drm_i915_private *dev_priv = overlay->i915;
- struct intel_engine_cs *engine = dev_priv->engine[RCS];
+ struct drm_i915_private *i915 = overlay->i915;
+ struct intel_engine_cs *engine = i915->engine[RCS];
- return i915_request_alloc(engine, dev_priv->kernel_context);
+ return i915_request_alloc(engine, i915->kernel_context, GFP_KERNEL);
}
/* overlay needs to be disable in OCMD reg */
diff --git a/drivers/gpu/drm/i915/selftests/huge_pages.c b/drivers/gpu/drm/i915/selftests/huge_pages.c
index 862295b2c4a8..78ff95b52630 100644
--- a/drivers/gpu/drm/i915/selftests/huge_pages.c
+++ b/drivers/gpu/drm/i915/selftests/huge_pages.c
@@ -975,7 +975,7 @@ static int gpu_write(struct i915_vma *vma,
if (err)
return err;
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
if (IS_ERR(rq))
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_coherency.c b/drivers/gpu/drm/i915/selftests/i915_gem_coherency.c
index 328585459c67..0aadf811d34c 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_coherency.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_coherency.c
@@ -191,7 +191,9 @@ static int gpu_set(struct drm_i915_gem_object *obj,
if (IS_ERR(vma))
return PTR_ERR(vma);
- rq = i915_request_alloc(i915->engine[RCS], i915->kernel_context);
+ rq = i915_request_alloc(i915->engine[RCS],
+ i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(rq)) {
i915_vma_unpin(vma);
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
index f88af80902fa..a4991a88134a 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
@@ -151,7 +151,7 @@ static int gpu_fill(struct drm_i915_gem_object *obj,
goto err_vma;
}
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
if (IS_ERR(rq)) {
err = PTR_ERR(rq);
goto err_batch;
@@ -683,7 +683,7 @@ static int __igt_switch_to_kernel_context(struct drm_i915_private *i915,
for_each_engine_masked(engine, i915, engines, tmp) {
struct i915_request *rq;
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
if (IS_ERR(rq))
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
index 51b5818e7fac..1e150d5cafc1 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
@@ -419,7 +419,7 @@ static int igt_evict_contexts(void *arg)
/* We will need some GGTT space for the rq's context */
igt_evict_ctl.fail_if_busy = true;
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
igt_evict_ctl.fail_if_busy = false;
if (IS_ERR(rq)) {
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_object.c b/drivers/gpu/drm/i915/selftests/i915_gem_object.c
index 7d0ddef1519b..cea26309cfc4 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_object.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_object.c
@@ -448,7 +448,9 @@ static int make_obj_busy(struct drm_i915_gem_object *obj)
if (err)
return err;
- rq = i915_request_alloc(i915->engine[RCS], i915->kernel_context);
+ rq = i915_request_alloc(i915->engine[RCS],
+ i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(rq)) {
i915_vma_unpin(vma);
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c b/drivers/gpu/drm/i915/selftests/i915_request.c
index c27f77a24ce0..3ecfdb1bc9ea 100644
--- a/drivers/gpu/drm/i915/selftests/i915_request.c
+++ b/drivers/gpu/drm/i915/selftests/i915_request.c
@@ -356,7 +356,8 @@ static int live_nop_request(void *arg)
for (n = 0; n < prime; n++) {
request = i915_request_alloc(engine,
- i915->kernel_context);
+ i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(request)) {
err = PTR_ERR(request);
goto out_unlock;
@@ -454,7 +455,9 @@ empty_request(struct intel_engine_cs *engine,
struct i915_request *request;
int err;
- request = i915_request_alloc(engine, engine->i915->kernel_context);
+ request = i915_request_alloc(engine,
+ engine->i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(request))
return request;
@@ -658,7 +661,9 @@ static int live_all_engines(void *arg)
}
for_each_engine(engine, i915, id) {
- request[id] = i915_request_alloc(engine, i915->kernel_context);
+ request[id] = i915_request_alloc(engine,
+ i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(request[id])) {
err = PTR_ERR(request[id]);
pr_err("%s: Request allocation failed with err=%d\n",
@@ -764,7 +769,9 @@ static int live_sequential_engines(void *arg)
goto out_unlock;
}
- request[id] = i915_request_alloc(engine, i915->kernel_context);
+ request[id] = i915_request_alloc(engine,
+ i915->kernel_context,
+ GFP_KERNEL);
if (IS_ERR(request[id])) {
err = PTR_ERR(request[id]);
pr_err("%s: Request allocation failed for %s with err=%d\n",
diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
index e522a02343d5..408458583b4b 100644
--- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
+++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
@@ -246,7 +246,7 @@ hang_create_request(struct hang *h, struct intel_engine_cs *engine)
h->batch = vaddr;
}
- rq = i915_request_alloc(engine, h->ctx);
+ rq = i915_request_alloc(engine, h->ctx, GFP_KERNEL);
if (IS_ERR(rq))
return rq;
@@ -625,7 +625,7 @@ static int active_engine(void *data)
struct i915_request *new;
mutex_lock(&engine->i915->drm.struct_mutex);
- new = i915_request_alloc(engine, ctx[idx]);
+ new = i915_request_alloc(engine, ctx[idx], GFP_KERNEL);
if (IS_ERR(new)) {
mutex_unlock(&engine->i915->drm.struct_mutex);
err = PTR_ERR(new);
diff --git a/drivers/gpu/drm/i915/selftests/intel_lrc.c b/drivers/gpu/drm/i915/selftests/intel_lrc.c
index 97f37ee0ae8f..a602bb697177 100644
--- a/drivers/gpu/drm/i915/selftests/intel_lrc.c
+++ b/drivers/gpu/drm/i915/selftests/intel_lrc.c
@@ -158,7 +158,7 @@ spinner_create_request(struct spinner *spin,
struct i915_request *rq;
int err;
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
if (IS_ERR(rq))
return rq;
@@ -542,7 +542,9 @@ static int nop_virtual_engine(struct drm_i915_private *i915,
for (nc = 0; nc < nctx; nc++) {
for (n = 0; n < prime; n++) {
request[nc] =
- i915_request_alloc(ve[nc], ctx[nc]);
+ i915_request_alloc(ve[nc],
+ ctx[nc],
+ GFP_KERNEL);
if (IS_ERR(request[nc])) {
err = PTR_ERR(request[nc]);
goto out;
diff --git a/drivers/gpu/drm/i915/selftests/intel_workarounds.c b/drivers/gpu/drm/i915/selftests/intel_workarounds.c
index 40fb481bbbf4..0fa0cdb6356b 100644
--- a/drivers/gpu/drm/i915/selftests/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/selftests/intel_workarounds.c
@@ -44,7 +44,7 @@ read_nonprivs(struct i915_gem_context *ctx, struct intel_engine_cs *engine)
if (err)
goto err_obj;
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
if (IS_ERR(rq)) {
err = PTR_ERR(rq);
goto err_pin;
@@ -174,7 +174,7 @@ static int switch_to_scratch_context(struct intel_engine_cs *engine)
if (IS_ERR(ctx))
return PTR_ERR(ctx);
- rq = i915_request_alloc(engine, ctx);
+ rq = i915_request_alloc(engine, ctx, GFP_KERNEL);
kernel_context_close(ctx);
if (IS_ERR(rq))
return PTR_ERR(rq);
diff --git a/drivers/gpu/drm/i915/selftests/mock_request.c b/drivers/gpu/drm/i915/selftests/mock_request.c
index 0dc29e242597..93927f3da210 100644
--- a/drivers/gpu/drm/i915/selftests/mock_request.c
+++ b/drivers/gpu/drm/i915/selftests/mock_request.c
@@ -34,7 +34,7 @@ mock_request(struct intel_engine_cs *engine,
struct mock_request *mock;
/* NB the i915->requests slab cache is enlarged to fit mock_request */
- request = i915_request_alloc(engine, context);
+ request = i915_request_alloc(engine, context, GFP_KERNEL);
if (IS_ERR(request))
return NULL;
--
2.18.0
More information about the Intel-gfx-trybot
mailing list