lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 12 May 2020 10:59:44 +0200 From: Daniel Vetter <daniel.vetter@...ll.ch> To: DRI Development <dri-devel@...ts.freedesktop.org> Cc: LKML <linux-kernel@...r.kernel.org>, Daniel Vetter <daniel.vetter@...ll.ch>, linux-media@...r.kernel.org, linaro-mm-sig@...ts.linaro.org, linux-rdma@...r.kernel.org, amd-gfx@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org, Chris Wilson <chris@...is-wilson.co.uk>, Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>, Christian König <christian.koenig@....com>, Daniel Vetter <daniel.vetter@...el.com> Subject: [RFC 17/17] drm/i915: Annotate dma_fence_work i915 does tons of allocations from this worker, which lockdep catches. Also generic infrastructure like this with big potential for how dma_fence or other cross driver contracts work, really should be reviewed on dri-devel. Implementing custom wheels for everything within the driver is a classic case of "platform problem" [1]. Which in upstream we really shouldn't have. Since there's no quick way to solve these splats (dma_fence_work is used a bunch in basic buffer management and command submission) like for amdgpu, I'm giving up at this point here. Annotating i915 scheduler and gpu reset could would be interesting, but since lockdep is one-shot we can't see what surprises would lurk there. 1: https://lwn.net/Articles/443531/ Cc: linux-media@...r.kernel.org Cc: linaro-mm-sig@...ts.linaro.org Cc: linux-rdma@...r.kernel.org Cc: amd-gfx@...ts.freedesktop.org Cc: intel-gfx@...ts.freedesktop.org Cc: Chris Wilson <chris@...is-wilson.co.uk> Cc: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com> Cc: Christian König <christian.koenig@....com> Signed-off-by: Daniel Vetter <daniel.vetter@...el.com> --- drivers/gpu/drm/i915/i915_sw_fence_work.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_sw_fence_work.c b/drivers/gpu/drm/i915/i915_sw_fence_work.c index a3a81bb8f2c3..5b74acadaef5 100644 --- a/drivers/gpu/drm/i915/i915_sw_fence_work.c +++ b/drivers/gpu/drm/i915/i915_sw_fence_work.c @@ -17,12 +17,15 @@ static void fence_work(struct work_struct *work) { struct dma_fence_work *f = container_of(work, typeof(*f), work); int err; + bool fence_cookie; + fence_cookie = dma_fence_begin_signalling(); err = f->ops->work(f); if (err) dma_fence_set_error(&f->dma, err); fence_complete(f); + dma_fence_end_signalling(fence_cookie); dma_fence_put(&f->dma); } -- 2.26.2
Powered by blists - more mailing lists