drm/i915: Fix context object leak for legacy contexts
Subsystems (2)
PATCH 1/1 drm/i915: Fix context object leak for legacy contexts
Dynamic context pinning for LRCs introduced a leak in legacy mode. Reinstate context unreference in i915_gem_free_request for legacy contexts.
Leak reported by i-g-t/drv_module_reload fixed by this patch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86507
--- drivers/gpu/drm/i915/i915_gem.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
drivers/gpu/drm/i915/i915_gem.c +6 -4
@@ -2574,11 +2574,13 @@ static void i915_gem_free_request(struct drm_i915_gem_request *request)list_del (&request->list);i915_gem_request_remove_from_client (request); -if (i915.enable_execlists && ctx) { -struct intel_engine_cs *ring = request->ring; +if (ctx) { +if (i915.enable_execlists) { +struct intel_engine_cs *ring = request->ring; -if (ctx != ring->default_context) -intel_lr_context_unpin (ring, ctx); +if (ctx != ring->default_context) +intel_lr_context_unpin (ring, ctx); + }i915_gem_context_unreference (ctx); }kfree (request);
Signature · 6 lines
1.7.9.5 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Looks good to me.
Quoted 23 lines · Thomas Daniel
Dynamic context pinning for LRCs introduced a leak in legacy mode. Reinstate context unreference in
i915_gem_free_requestfor legacy contexts.Leak reported by i-g-t/drv_module_reload fixed by this patch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86507
Signed-off-by Thomas Daniel <[email protected]>--- drivers/gpu/drm/i915/i915_gem.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)drivers/gpu/drm/i915/i915_gem.c +2
-2@@ -2574,11 +2574,13 @@ static void i915_gem_free_request(struct drm_i915_gem_request *request)list_del (&request->list);i915_gem_request_remove_from_client (request); -if (i915.enable_execlists && ctx) { -struct intel_engine_cs *ring = request->ring; +if (ctx) { +if (i915.enable_execlists) {
drivers/gpu/drm/i915/i915_gem.c static void i915_gem_free_request(struct drm_i915_gem_request *request) · line 2586
Quoted 10 lines
drivers/gpu/drm/i915/i915_gem.c +4
-2+struct intel_engine_cs *ring = request->ring; -if (ctx != ring->default_context) -intel_lr_context_unpin (ring, ctx); +if (ctx != ring->default_context) +intel_lr_context_unpin (ring, ctx); + }i915_gem_context_unreference (ctx); }kfree (request);
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH] drm/i915: Fix context object leak for legacy
In reply to Thomas Daniel-------------------------------------Summary-------------------------------------
Platform Delta drm-intel-nightly Series Applied
PNV 367/367 367/367 ILK -13 375/375 362/375 SNB 450/450 450/450
IVB -2 503/503 501/503
BYT 289/289 289/289
HSW -4 567/567 563/567
BDW 417/417 417/417
-------------------------------------Detailed-------------------------------------
Platform Test drm-intel-nightly Series Applied
ILK igt_gem_reset_stats_close-pending-fork-render TIMEOUT(15, M37M26)PASS(1, M26) TIMEOUT(1, M26) ILK igt_kms_3d DMESG_WARN(2, M26)PASS(3, M37M26) DMESG_WARN(1, M26) *ILK igt_kms_flip_flip-vs-dpms-off-vs-modeset DMESG_WARN(1, M26)PASS(2, M37M26) NSPT(1, M26) ILK igt_kms_flip_nonexisting-fb DMESG_WARN(3, M26)PASS(3, M37M26) DMESG_WARN(1, M26) *ILK igt_kms_pipe_crc_basic_bad-nb-words-1 PASS(2, M37M26) DMESG_WARN(1, M26) *ILK igt_kms_pipe_crc_basic_bad-pipe PASS(2, M37M26) DMESG_WARN(1, M26) ILK igt_kms_setmode_invalid-clone-exclusive-crtc DMESG_WARN(1, M26)PASS(2, M37M26) DMESG_WARN(1, M26) *ILK igt_kms_flip_rcs-flip-vs-panning-interruptible DMESG_WARN(1, M26)PASS(2, M37M26) NSPT(1, M26) *ILK igt_kms_flip_rcs-wf_vblank-vs-dpms-interruptible DMESG_WARN(1, M26)PASS(1, M37) NSPT(1, M26) ILK igt_kms_flip_rcs-wf_vblank-vs-modeset DMESG_WARN(1, M26)PASS(2, M37M26) DMESG_WARN(1, M26) *ILK igt_kms_flip_bcs-flip-vs-modeset-interruptible PASS(4, M37M26) DMESG_WARN(1, M26) *ILK igt_kms_flip_rcs-flip-vs-modeset-interruptible PASS(4, M37M26) DMESG_WARN(1, M26) ILK igt_kms_flip_vblank-vs-hang TIMEOUT(14, M37M26)PASS(1, M26) TIMEOUT(1, M26) IVB igt_gem_bad_reloc_negative-reloc NSPT(16, M34M21M4)PASS(1, M21) NSPT(1, M21) IVB igt_gem_bad_reloc_negative-reloc-lut NSPT(3, M21M34M4)PASS(17, M21M34M4) NSPT(1, M21) HSW igt_gem_bad_reloc_negative-reloc-lut NSPT(26, M40M20M19)PASS(1, M20) NSPT(1, M19) *HSW igt_kms_fence_pin_leak PASS(3, M20M19) DMESG_WARN(1, M19) *HSW igt_kms_rotation_crc_primary-rotation PASS(25, M20M40M19) DMESG_WARN(1, M19) *HSW igt_pm_rc6_residency_rc6-accuracy PASS(27, M20M40M19) FAIL(1, M19)
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list [email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx