Re: [Intel-gfx] [PATCH 2/3] drm/i915: Special case kernel_context switch request
Hi Mika, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on next-20180517] [cannot apply to drm-intel/for-linux-next v4.17-rc6 v4.17-rc5 v4.17-rc4 v4.17-rc6] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Prepare-GEM-for-suspend-earlier/20180524-214128 config: i386-randconfig-x071-201820 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): In file included from arch/x86/include/asm/bitops.h:16:0, from include/linux/bitops.h:38, from include/linux/log2.h:16, from drivers/gpu//drm/i915/i915_gem_context.c:88: drivers/gpu//drm/i915/i915_gem_context.c: In function 'engine_has_idle_kernel_context': drivers/gpu//drm/i915/i915_gem_context.c:608:15: error: 'struct i915_request' has no member named 'gem_context' if (rq && rq->gem_context != engine->i915->kernel_context) ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> drivers/gpu//drm/i915/i915_gem_context.c:608:3: note: in expansion of macro >> 'if' if (rq && rq->gem_context != engine->i915->kernel_context) ^~ drivers/gpu//drm/i915/i915_gem_context.c:608:15: error: 'struct i915_request' has no member named 'gem_context' if (rq && rq->gem_context != engine->i915->kernel_context) ^ include/linux/compiler.h:58:42: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> drivers/gpu//drm/i915/i915_gem_context.c:608:3: note: in expansion of macro >> 'if' if (rq && rq->gem_context != engine->i915->kernel_context) ^~ drivers/gpu//drm/i915/i915_gem_context.c:608:15: error: 'struct i915_request' has no member named 'gem_context' if (rq && rq->gem_context != engine->i915->kernel_context) ^ include/linux/compiler.h:69:16: note: in definition of macro '__trace_if' __r = !!(cond); \ ^~~~ >> drivers/gpu//drm/i915/i915_gem_context.c:608:3: note: in expansion of macro >> 'if' if (rq && rq->gem_context != engine->i915->kernel_context) ^~ vim +/if +608 drivers/gpu//drm/i915/i915_gem_context.c 596 597 static bool engine_has_idle_kernel_context(struct intel_engine_cs *engine) 598 { 599 struct list_head * const active_rings = &engine->i915->gt.active_rings; 600 struct intel_ring *ring; 601 602 lockdep_assert_held(&engine->i915->drm.struct_mutex); 603 604 list_for_each_entry(ring, active_rings, active_link) { 605 struct i915_request *rq = 606 last_request_on_engine(ring->timeline, engine); 607 > 608 if (rq && rq->gem_context != > engine->i915->kernel_context) 609 return false; 610 } 611 612 return intel_engine_has_kernel_context(engine); 613 } 614 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 2/3] drm/i915: Special case kernel_context switch request
Hi Mika, Thank you for the patch! Yet something to improve: [auto build test ERROR on next-20180517] [cannot apply to drm-intel/for-linux-next v4.17-rc6 v4.17-rc5 v4.17-rc4 v4.17-rc6] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Prepare-GEM-for-suspend-earlier/20180524-214128 config: x86_64-randconfig-x015-201820 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/gpu//drm/i915/i915_gem_context.c: In function 'engine_has_idle_kernel_context': >> drivers/gpu//drm/i915/i915_gem_context.c:608:15: error: 'struct >> i915_request' has no member named 'gem_context' if (rq && rq->gem_context != engine->i915->kernel_context) ^~ vim +608 drivers/gpu//drm/i915/i915_gem_context.c 596 597 static bool engine_has_idle_kernel_context(struct intel_engine_cs *engine) 598 { 599 struct list_head * const active_rings = &engine->i915->gt.active_rings; 600 struct intel_ring *ring; 601 602 lockdep_assert_held(&engine->i915->drm.struct_mutex); 603 604 list_for_each_entry(ring, active_rings, active_link) { 605 struct i915_request *rq = 606 last_request_on_engine(ring->timeline, engine); 607 > 608 if (rq && rq->gem_context != > engine->i915->kernel_context) 609 return false; 610 } 611 612 return intel_engine_has_kernel_context(engine); 613 } 614 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 2/3] drm/i915: Special case kernel_context switch request
From: Mika Kuoppala When checking if engine is idling on a kernel context, the last request emitted to it could have been the exact request to switch into kernel context. Do not bail out early even if engine has requests, if the last request was for kernel context. Fixes: a89d1f921c15 ("drm/i915: Split i915_gem_timeline into individual timelines") Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson --- drivers/gpu/drm/i915/i915_gem_context.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index b69b18ef8120..3fe1212b0f7e 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -595,7 +595,10 @@ static bool engine_has_idle_kernel_context(struct intel_engine_cs *engine) lockdep_assert_held(&engine->i915->drm.struct_mutex); list_for_each_entry(ring, active_rings, active_link) { - if (last_request_on_engine(ring->timeline, engine)) + struct i915_request *rq = + last_request_on_engine(ring->timeline, engine); + + if (rq && rq->gem_context != engine->i915->kernel_context) return false; } -- 2.17.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx