Message ID | 1461066053-30072-11-git-send-email-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on next-20160419] [cannot apply to v4.6-rc4] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Mark-the-current-context-as-lost-on-suspend/20160419-194400 base: git://anongit.freedesktop.org/drm-intel for-linux-next reproduce: make htmldocs All warnings (new ones prefixed by >>): include/drm/drmP.h:280: warning: No description found for parameter 'ioctl' include/drm/drmP.h:280: warning: No description found for parameter '_func' include/drm/drmP.h:280: warning: No description found for parameter '_flags' include/drm/drmP.h:362: warning: cannot understand function prototype: 'struct drm_lock_data ' include/drm/drmP.h:415: warning: cannot understand function prototype: 'struct drm_driver ' include/drm/drmP.h:672: warning: cannot understand function prototype: 'struct drm_info_list ' include/drm/drmP.h:682: warning: cannot understand function prototype: 'struct drm_info_node ' include/drm/drmP.h:692: warning: cannot understand function prototype: 'struct drm_minor ' include/drm/drmP.h:740: warning: cannot understand function prototype: 'struct drm_device ' drivers/gpu/drm/i915/intel_runtime_pm.c:2356: warning: No description found for parameter 'resume' drivers/gpu/drm/i915/intel_runtime_pm.c:2356: warning: No description found for parameter 'resume' drivers/gpu/drm/i915/i915_irq.c:2722: warning: No description found for parameter 'fmt' drivers/gpu/drm/i915/i915_irq.c:2722: warning: No description found for parameter 'fmt' drivers/gpu/drm/i915/i915_irq.c:2722: warning: No description found for parameter 'fmt' drivers/gpu/drm/i915/i915_irq.c:2722: warning: No description found for parameter 'fmt' drivers/gpu/drm/i915/i915_gem.c:416: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:416: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:416: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:681: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:681: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:681: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:762: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:762: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:762: warning: No description found for parameter 'args' drivers/gpu/drm/i915/i915_gem.c:762: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:1025: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:1025: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:1025: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:1231: warning: No description found for parameter 'rps' drivers/gpu/drm/i915/i915_gem.c:1446: warning: No description found for parameter 'req' drivers/gpu/drm/i915/i915_gem.c:1475: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:1475: warning: No description found for parameter 'readonly' drivers/gpu/drm/i915/i915_gem.c:1591: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:1591: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:1591: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:1654: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:1654: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:1654: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:1699: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:1699: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:1699: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:2004: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:2004: warning: No description found for parameter 'size' drivers/gpu/drm/i915/i915_gem.c:2004: warning: No description found for parameter 'tiling_mode' drivers/gpu/drm/i915/i915_gem.c:2004: warning: No description found for parameter 'fenced' drivers/gpu/drm/i915/i915_gem.c:2004: warning: Excess function parameter 'obj' description in 'i915_gem_get_gtt_alignment' drivers/gpu/drm/i915/i915_gem.c:2961: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_gem.c:3087: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:3137: warning: No description found for parameter 'dev' drivers/gpu/drm/i915/i915_gem.c:3137: warning: No description found for parameter 'data' drivers/gpu/drm/i915/i915_gem.c:3137: warning: No description found for parameter 'file' drivers/gpu/drm/i915/i915_gem.c:3137: warning: Excess function parameter 'DRM_IOCTL_ARGS' description in 'i915_gem_wait_ioctl' drivers/gpu/drm/i915/i915_gem.c:3499: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:3499: warning: No description found for parameter 'vm' drivers/gpu/drm/i915/i915_gem.c:3499: warning: No description found for parameter 'ggtt_view' drivers/gpu/drm/i915/i915_gem.c:3499: warning: No description found for parameter 'alignment' drivers/gpu/drm/i915/i915_gem.c:3499: warning: No description found for parameter 'flags' drivers/gpu/drm/i915/i915_gem.c:3755: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:3755: warning: No description found for parameter 'write' drivers/gpu/drm/i915/i915_gem.c:3833: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:3833: warning: No description found for parameter 'cache_level' drivers/gpu/drm/i915/i915_gem.c:4107: warning: No description found for parameter 'obj' drivers/gpu/drm/i915/i915_gem.c:4107: warning: No description found for parameter 'write' drivers/gpu/drm/i915/i915_cmd_parser.c:748: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:748: warning: Excess function parameter 'ring' description in 'i915_cmd_parser_init_ring' drivers/gpu/drm/i915/i915_cmd_parser.c:838: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:838: warning: Excess function parameter 'ring' description in 'i915_cmd_parser_fini_ring' drivers/gpu/drm/i915/i915_cmd_parser.c:1034: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:1034: warning: Excess function parameter 'ring' description in 'i915_needs_cmd_parser' drivers/gpu/drm/i915/i915_cmd_parser.c:1186: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:1186: warning: Excess function parameter 'ring' description in 'i915_parse_cmds' drivers/gpu/drm/i915/i915_cmd_parser.c:748: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:748: warning: Excess function parameter 'ring' description in 'i915_cmd_parser_init_ring' drivers/gpu/drm/i915/i915_cmd_parser.c:838: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:838: warning: Excess function parameter 'ring' description in 'i915_cmd_parser_fini_ring' drivers/gpu/drm/i915/i915_cmd_parser.c:1034: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:1034: warning: Excess function parameter 'ring' description in 'i915_needs_cmd_parser' drivers/gpu/drm/i915/i915_cmd_parser.c:1186: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/i915_cmd_parser.c:1186: warning: Excess function parameter 'ring' description in 'i915_parse_cmds' drivers/gpu/drm/i915/intel_lrc.c:318: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:318: warning: Excess function parameter 'ring' description in 'intel_lr_context_descriptor_update' drivers/gpu/drm/i915/intel_lrc.c:522: warning: No description found for parameter 'data' drivers/gpu/drm/i915/intel_lrc.c:522: warning: Excess function parameter 'engine' description in 'intel_lrc_irq_handler' drivers/gpu/drm/i915/intel_lrc.c:929: warning: No description found for parameter 'params' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'dev' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'file' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'ring' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'ctx' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'batch_obj' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'exec_start' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'dispatch_flags' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:1302: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:1302: warning: Excess function parameter 'ring' description in 'gen8_init_indirectctx_bb' drivers/gpu/drm/i915/intel_lrc.c:1365: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:1365: warning: Excess function parameter 'ring' description in 'gen8_init_perctx_bb' drivers/gpu/drm/i915/intel_lrc.c:2008: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:2008: warning: Excess function parameter 'ring' description in 'intel_logical_ring_cleanup' drivers/gpu/drm/i915/intel_lrc.c:2587: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:2587: warning: Excess function parameter 'ring' description in 'intel_lr_context_size' drivers/gpu/drm/i915/intel_lrc.c:2625: warning: No description found for parameter 'engine' >> drivers/gpu/drm/i915/intel_lrc.c:2625: warning: Excess function parameter 'ring' description in 'execlists_context_deferred_alloc' drivers/gpu/drm/i915/intel_lrc.c:318: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:318: warning: Excess function parameter 'ring' description in 'intel_lr_context_descriptor_update' drivers/gpu/drm/i915/intel_lrc.c:522: warning: No description found for parameter 'data' drivers/gpu/drm/i915/intel_lrc.c:522: warning: Excess function parameter 'engine' description in 'intel_lrc_irq_handler' drivers/gpu/drm/i915/intel_lrc.c:929: warning: No description found for parameter 'params' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'dev' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'file' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'ring' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'ctx' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'batch_obj' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'exec_start' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:929: warning: Excess function parameter 'dispatch_flags' description in 'intel_execlists_submission' drivers/gpu/drm/i915/intel_lrc.c:1302: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:1302: warning: Excess function parameter 'ring' description in 'gen8_init_indirectctx_bb' drivers/gpu/drm/i915/intel_lrc.c:1365: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:1365: warning: Excess function parameter 'ring' description in 'gen8_init_perctx_bb' drivers/gpu/drm/i915/intel_lrc.c:2008: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:2008: warning: Excess function parameter 'ring' description in 'intel_logical_ring_cleanup' drivers/gpu/drm/i915/intel_lrc.c:2587: warning: No description found for parameter 'engine' drivers/gpu/drm/i915/intel_lrc.c:2587: warning: Excess function parameter 'ring' description in 'intel_lr_context_size' drivers/gpu/drm/i915/intel_lrc.c:2625: warning: No description found for parameter 'engine' >> drivers/gpu/drm/i915/intel_lrc.c:2625: warning: Excess function parameter 'ring' description in 'execlists_context_deferred_alloc' Warning: didn't use docs for i915_hotplug_interrupt_update Warning: didn't use docs for ilk_update_display_irq Warning: didn't use docs for ilk_update_gt_irq Warning: didn't use docs for snb_update_pm_irq Warning: didn't use docs for bdw_update_port_irq Warning: didn't use docs for bdw_update_pipe_irq Warning: didn't use docs for ibx_display_interrupt_update Warning: didn't use docs for i915_enable_asle_pipestat Warning: didn't use docs for ivybridge_parity_work Warning: didn't use docs for i915_reset_and_wakeup Warning: didn't use docs for i915_handle_error Warning: didn't use docs for intel_irq_install Warning: didn't use docs for intel_irq_uninstall vim +2625 drivers/gpu/drm/i915/intel_lrc.c ede7d42b Oscar Mateo 2014-07-24 2609 73e4d07f Oscar Mateo 2014-07-24 2610 /** 92c1989f Chris Wilson 2016-04-19 2611 * execlists_context_deferred_alloc() - create the LRC specific bits of a context 73e4d07f Oscar Mateo 2014-07-24 2612 * @ctx: LR context to create. 73e4d07f Oscar Mateo 2014-07-24 2613 * @ring: engine to be used with the context. 73e4d07f Oscar Mateo 2014-07-24 2614 * 73e4d07f Oscar Mateo 2014-07-24 2615 * This function can be called more than once, with different engines, if we plan 73e4d07f Oscar Mateo 2014-07-24 2616 * to use the context with them. The context backing objects and the ringbuffers 73e4d07f Oscar Mateo 2014-07-24 2617 * (specially the ringbuffer backing objects) suck a lot of memory up, and that's why 73e4d07f Oscar Mateo 2014-07-24 2618 * the creation is a deferred call: it's better to make sure first that we need to use 73e4d07f Oscar Mateo 2014-07-24 2619 * a given ring with the context. 73e4d07f Oscar Mateo 2014-07-24 2620 * 32197aab Masanari Iida 2014-10-20 2621 * Return: non-zero on error. 73e4d07f Oscar Mateo 2014-07-24 2622 */ 92c1989f Chris Wilson 2016-04-19 2623 static int execlists_context_deferred_alloc(struct intel_context *ctx, 0bc40be8 Tvrtko Ursulin 2016-03-16 2624 struct intel_engine_cs *engine) ede7d42b Oscar Mateo 2014-07-24 @2625 { 0bc40be8 Tvrtko Ursulin 2016-03-16 2626 struct drm_device *dev = engine->dev; 8c857917 Oscar Mateo 2014-07-24 2627 struct drm_i915_gem_object *ctx_obj; 8c857917 Oscar Mateo 2014-07-24 2628 uint32_t context_size; 84c2377f Oscar Mateo 2014-07-24 2629 struct intel_ringbuffer *ringbuf; 8c857917 Oscar Mateo 2014-07-24 2630 int ret; 8c857917 Oscar Mateo 2014-07-24 2631 ede7d42b Oscar Mateo 2014-07-24 2632 WARN_ON(ctx->legacy_hw_ctx.rcs_state != NULL); 0bc40be8 Tvrtko Ursulin 2016-03-16 2633 WARN_ON(ctx->engine[engine->id].state); :::::: The code at line 2625 was first introduced by commit :::::: ede7d42baeece583c864badb6f9081f4cded6c32 drm/i915/bdw: Initialization for Logical Ring Contexts :::::: TO: Oscar Mateo <oscar.mateo@intel.com> :::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 6f4f2a6cdf93..e0ee5d1ac372 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -1085,14 +1085,6 @@ i915_gem_validate_context(struct drm_device *dev, struct drm_file *file, return ERR_PTR(-EIO); } - if (i915.enable_execlists && !ctx->engine[engine->id].state) { - int ret = intel_lr_context_deferred_alloc(ctx, engine); - if (ret) { - DRM_DEBUG("Could not create LRC %u: %d\n", ctx_id, ret); - return ERR_PTR(ret); - } - } - return ctx; } diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 897f3d4c32c6..2910866611b2 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -227,6 +227,8 @@ enum { #define GEN8_CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT 0x17 #define GEN9_CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT 0x26 +static int execlists_context_deferred_alloc(struct intel_context *ctx, + struct intel_engine_cs *engine); static int intel_lr_context_pin(struct intel_context *ctx, struct intel_engine_cs *engine); @@ -675,8 +677,6 @@ int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request struct intel_engine_cs *engine = request->engine; int ret; - request->ringbuf = request->ctx->engine[engine->id].ringbuf; - if (i915.enable_guc_submission) { /* * Check that the GuC has space for the request before @@ -690,6 +690,14 @@ int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request return ret; } + if (request->ctx->engine[engine->id].state == NULL) { + ret = execlists_context_deferred_alloc(request->ctx, engine); + if (ret) + return ret; + } + + request->ringbuf = request->ctx->engine[engine->id].ringbuf; + ret = intel_lr_context_pin(request->ctx, engine); if (ret) return ret; @@ -2126,7 +2134,7 @@ logical_ring_init(struct drm_device *dev, struct intel_engine_cs *engine) if (ret) goto error; - ret = intel_lr_context_deferred_alloc(dctx, engine); + ret = execlists_context_deferred_alloc(dctx, engine); if (ret) goto error; @@ -2600,7 +2608,7 @@ uint32_t intel_lr_context_size(struct intel_engine_cs *engine) } /** - * intel_lr_context_deferred_alloc() - create the LRC specific bits of a context + * execlists_context_deferred_alloc() - create the LRC specific bits of a context * @ctx: LR context to create. * @ring: engine to be used with the context. * @@ -2612,9 +2620,8 @@ uint32_t intel_lr_context_size(struct intel_engine_cs *engine) * * Return: non-zero on error. */ - -int intel_lr_context_deferred_alloc(struct intel_context *ctx, - struct intel_engine_cs *engine) +static int execlists_context_deferred_alloc(struct intel_context *ctx, + struct intel_engine_cs *engine) { struct drm_device *dev = engine->dev; struct drm_i915_gem_object *ctx_obj; diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h index b17ab79333aa..8bea937973f6 100644 --- a/drivers/gpu/drm/i915/intel_lrc.h +++ b/drivers/gpu/drm/i915/intel_lrc.h @@ -102,8 +102,6 @@ static inline void intel_logical_ring_emit_reg(struct intel_ringbuffer *ringbuf, void intel_lr_context_free(struct intel_context *ctx); uint32_t intel_lr_context_size(struct intel_engine_cs *engine); -int intel_lr_context_deferred_alloc(struct intel_context *ctx, - struct intel_engine_cs *engine); void intel_lr_context_unpin(struct intel_context *ctx, struct intel_engine_cs *engine);