Summary: | [BAT] igt@gem_ctx_create@basic-files - Softdog Incomplete - BUG kmalloc-8192 (Tainted: G U ): Padding overwritten. 0xffff88016a93e742-0xffff88016a93e77f | ||
---|---|---|---|
Product: | DRI | Reporter: | Marta Löfstedt <marta.lofstedt> |
Component: | DRM/Intel | Assignee: | Marta Löfstedt <marta.lofstedt> |
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Severity: | critical | ||
Priority: | high | CC: | intel-gfx-bugs |
Version: | DRI git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | ReadyForDev | ||
i915 platform: | GLK | i915 features: | GEM/Other |
Description
Marta Löfstedt
2017-11-09 11:29:17 UTC
Rising priority since it is BAT. One random memcorruption fixed: commit 7d622351c94172a42bfe9b13bdb0fdc2be90ed3b Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Dec 13 09:48:02 2017 +0000 drm/i915/fence: Use rcu to defer freeing of irq_work It is illegal to perform an immediate free of the struct irq_work from inside the irq_work callback (as irq_work_run_list modifies work->flags after execution of the work->func()). As we use the irq_work to coordinate the freeing of the callback from two different softirq paths, we need to defer the kfree from inside our irq_work callback, for which we can use kfree_rcu. Fixes: 81c0ed21aa91 ("drm/i915/fence: Avoid del_timer_sync() from inside a timer") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20171213094802.28243-1-chris@chris-wilson.co.uk Hopefully this explains a lot of weirdness. Fix included in CI_DRM_3505, I will manitor for soem runs... (In reply to Chris Wilson from comment #2) > One random memcorruption fixed: > > commit 7d622351c94172a42bfe9b13bdb0fdc2be90ed3b > Author: Chris Wilson <chris@chris-wilson.co.uk> > Date: Wed Dec 13 09:48:02 2017 +0000 > > drm/i915/fence: Use rcu to defer freeing of irq_work > > It is illegal to perform an immediate free of the struct irq_work from > inside the irq_work callback (as irq_work_run_list modifies work->flags > after execution of the work->func()). As we use the irq_work to > coordinate the freeing of the callback from two different softirq paths, > we need to defer the kfree from inside our irq_work callback, for which > we can use kfree_rcu. > > Fixes: 81c0ed21aa91 ("drm/i915/fence: Avoid del_timer_sync() from inside > a timer") > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> > Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Link: > https://patchwork.freedesktop.org/patch/msgid/20171213094802.28243-1- > chris@chris-wilson.co.uk > > Hopefully this explains a lot of weirdness. I still see a lot of weirdness from the GLK-DSI machine. Chris, if you want to close this bug feel free. I just wanted not file this on bug 103514, since this looked extra weird enough to deserve its own bug. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.