Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp457936ybk; Wed, 20 May 2020 04:06:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxe6ZPwADPXPRqaVJ2iPRsth4vFEtPEXhIvMQPauIvupsXotlsjakyvRVtPHYcO4s0cYe66 X-Received: by 2002:a17:906:b182:: with SMTP id w2mr3239774ejy.463.1589972763806; Wed, 20 May 2020 04:06:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589972763; cv=none; d=google.com; s=arc-20160816; b=ivJORlO5CvjA5E4IUqIP0RNf+nUy4YDRH/bRYGHtM7pSDOhgP98NEKVbyzVpPVEXlq PgcnqAzj5qsUAWSSJZFUxDtbIKrfD7u4VEvawlQJdmckqtNDa5l7gc52pYrkd35BOGRJ aCk7j6D8yVnv9U7iiXqOg3qlpn3cKyIpVonkvrKU9XBczNWlZ6RUHrHyHR80d+eyfcwg OwHQbCM0yht6Xf34VgtwyQsS5Tc7vp7TV17lQFivMEsaJIOrhtTGCRRYpiJEOvmvJVAx uqTjBUP+mItlkL47IIALdpc2Ctos6rwFf4oOyVP4L6D7GwfsX7u4Hu2lJFqwcWHOjHnp 1RTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature; bh=ct4iwtkqSx7W80DKvDt8WvEkiq9KjVIacJ0yr7BAVII=; b=kHXsJ0tAeqNsXkKkVcbasfUjdjgrlv9LWMsP33fC1bF0o4mzSRKCFJYJX4CzP21LXB twjKHkWKPcEfe1HVPzwwBe2iWp55ZlsDDmag2stj6ozw6gBlj4cZ8aT/soTWO9X/XuKr Lik+6n4Y3+0IBrwZDWkJKxxBo4TBUNOVk/GPgu0Vk/YblMontj02nmKWefyD/92y+z7c 7YqEaV4IbUzVq3SbC5Cn/RJspkiv3T1BXyjnR/2dvFtCxwEH7D0leTFuRTcpknAd55pP K/8JAgFtYIxyPMKXgzN8ljqlot0g0ZTiIQJoPvafnKABjZWqsKFM40CNrKd/bjPZM6mv kDZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=gCn4N7N3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c59si1288340edd.430.2020.05.20.04.05.38; Wed, 20 May 2020 04:06:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=gCn4N7N3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726818AbgETLDa (ORCPT + 99 others); Wed, 20 May 2020 07:03:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726827AbgETLD1 (ORCPT ); Wed, 20 May 2020 07:03:27 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8BE5C08C5C0 for ; Wed, 20 May 2020 04:03:25 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id j5so2717854wrq.2 for ; Wed, 20 May 2020 04:03:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=ct4iwtkqSx7W80DKvDt8WvEkiq9KjVIacJ0yr7BAVII=; b=gCn4N7N304bnLXil/a63o+C7lXWE4O+dUD5kr4U/QwkYok3WIYIss7MpTiwkIvDJDu Yb14/i8NGGvtiwnPpTQWB1oc/MHjv9gyvs+HjkbrsA9GEiFTSWKwCkg07hWlb9e22xpX cG1iXAAYqHj6N5FDXXS8FFy8ELfjoCREHTKlM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=ct4iwtkqSx7W80DKvDt8WvEkiq9KjVIacJ0yr7BAVII=; b=HkFqrFajZ48/vHE5A5h+e9GW/PKsEh4/wBPC9oGx8xy0R9AMVrT2lmSTN99BsQNYSC 6tf2FLiDjQw6U7A8TGnWgOLokJKJ9Tlbb8ttj3mnOm4uGm6uqXFOieBlSyB6/JMjl+Vx txo6sqhSoHRb1e0U7UZQsvs9zZNwBXzw4s3y+Tz3BboyMVoG10E82t8xyK7KDOa0n146 Kjl/ibaEyUwFPKnf3+qDM8DdhRNg9z1is4aW8SztltbweKp7EgYmjSw1Dsn4TT79bjrK uWrlvi65lAkuzpDfIN4RXV1a1a+MKA7YryIX9474SfSYvddMqAe7rnjPl9/+HKPMubsX Y75w== X-Gm-Message-State: AOAM531uHjBxEXXPjZydBLpbNG10fWwOJFoc8i7zb5HfMIzG7RWJM0W7 ahRHR6cUCpG4zfbvT1dGhcimzw== X-Received: by 2002:adf:fe90:: with SMTP id l16mr3672440wrr.222.1589972604221; Wed, 20 May 2020 04:03:24 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id u65sm2743050wmg.8.2020.05.20.04.03.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 04:03:23 -0700 (PDT) Date: Wed, 20 May 2020 13:03:20 +0200 From: Daniel Vetter To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: Daniel Vetter , DRI Development , LKML , Alex Deucher , Lucas Stach , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Ben Skeggs , VMware Graphics , Oded Gabbay , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Chris Wilson , Maarten Lankhorst , Daniel Vetter Subject: Re: [PATCH] dma-fence: add might_sleep annotation to _wait() Message-ID: <20200520110320.GT206103@phenom.ffwll.local> Mail-Followup-To: Christian =?iso-8859-1?Q?K=F6nig?= , DRI Development , LKML , Alex Deucher , Lucas Stach , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Ben Skeggs , VMware Graphics , Oded Gabbay , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Chris Wilson , Maarten Lankhorst , Daniel Vetter References: <20200519132756.682888-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Operating-System: Linux phenom 5.6.0-1-amd64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 20, 2020 at 08:54:36AM +0200, Christian K?nig wrote: > Am 19.05.20 um 15:27 schrieb Daniel Vetter: > > Do it uncontionally, there's a separate peek function with > > dma_fence_is_signalled() which can be called from atomic context. > > > > v2: Consensus calls for an unconditional might_sleep (Chris, > > Christian) > > > > Full audit: > > - dma-fence.h: Uses MAX_SCHEDULE_TIMOUT, good chance this sleeps > > - dma-resv.c: Timeout always at least 1 > > - st-dma-fence.c: Save to sleep in testcases > > - amdgpu_cs.c: Both callers are for variants of the wait ioctl > > - amdgpu_device.c: Two callers in vram recover code, both right next > > to mutex_lock. > > - amdgpu_vm.c: Use in the vm_wait ioctl, next to _reserve/unreserve > > - remaining functions in amdgpu: All for test_ib implementations for > > various engines, caller for that looks all safe (debugfs, driver > > load, reset) > > - etnaviv: another wait ioctl > > - habanalabs: another wait ioctl > > - nouveau_fence.c: hardcoded 15*HZ ... glorious > > - nouveau_gem.c: hardcoded 2*HZ ... so not even super consistent, but > > this one does have a WARN_ON :-/ At least this one is only a > > fallback path for when kmalloc fails. Maybe this should be put onto > > some worker list instead, instead of a work per unamp ... > > - i915/selftests: Hardecoded HZ / 4 or HZ / 8 > > - i915/gt/selftests: Going up the callchain looks safe looking at > > nearby callers > > - i915/gt/intel_gt_requests.c. Wrapped in a mutex_lock > > - i915/gem_i915_gem_wait.c: The i915-version which is called instead > > for i915 fences already has a might_sleep() annotation, so all good > > > > Cc: Alex Deucher > > Cc: Lucas Stach > > Cc: Jani Nikula > > Cc: Joonas Lahtinen > > Cc: Rodrigo Vivi > > Cc: Ben Skeggs > > Cc: "VMware Graphics" > > Cc: Oded Gabbay > > Cc: linux-media@vger.kernel.org > > Cc: linaro-mm-sig@lists.linaro.org > > Cc: linux-rdma@vger.kernel.org > > Cc: amd-gfx@lists.freedesktop.org > > Cc: intel-gfx@lists.freedesktop.org > > Cc: Chris Wilson > > Cc: Maarten Lankhorst > > Cc: Christian K?nig > > Signed-off-by: Daniel Vetter > > Reviewed-by: Christian K?nig intel-gfx-ci approves too, thanks to both of you for reviews, patch merged to drm-misc-next. -Daniel > > > --- > > drivers/dma-buf/dma-fence.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c > > index 90edf2b281b0..656e9ac2d028 100644 > > --- a/drivers/dma-buf/dma-fence.c > > +++ b/drivers/dma-buf/dma-fence.c > > @@ -208,6 +208,8 @@ dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout) > > if (WARN_ON(timeout < 0)) > > return -EINVAL; > > + might_sleep(); > > + > > trace_dma_fence_wait_start(fence); > > if (fence->ops->wait) > > ret = fence->ops->wait(fence, intr, timeout); > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch