Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp3879878rdb; Mon, 11 Dec 2023 02:47:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IH0RKjRZn3XKEizh4pun7zILqtKGP/SJCuCrfCuFmBYk4I+peHqv/qy2+sV7vOnDCiHKPRn X-Received: by 2002:a05:6a20:938b:b0:190:3d3c:6590 with SMTP id x11-20020a056a20938b00b001903d3c6590mr1337069pzh.62.1702291663056; Mon, 11 Dec 2023 02:47:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702291663; cv=none; d=google.com; s=arc-20160816; b=dS+RbfftS2kCIpbaopK2CFmNGjFj0QGb9wwMeFpT/zl0v1oO+4P5L2ovJfQjHnGyIn 1Hj5SN1hgMOXWt8MpIH4PwFQ151JYJIXSpcB423G6ITw1HpN2t4L1UZJ2swol0xxoDCE TOf4wDVSpxKJGWnMkKq77T8/00lbojCPy+l9Wdh/WllFGgso7S07lUgDUFhjo5siENYp /DF+SCmdA96zBh52begST451jgGJeUQjmIJWnjQcUUkI3leRHxVYzRiwll8Qpnax4UdN Tc/9+c4tjC7V5J2G6bjsqQVrq32QfoMJXs7DYfYKH/sQZOiQr2yiy8cYnDU/z7HjIgSK vyaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=ce0zbxA04eGm5L5oadZ3wbq0BpUtWOBHwT553G24fMY=; fh=wyDC7xPinEugk4QUy7z+0izpXdEVDW326AmT1EuvIvI=; b=S2wptxG5UhWOWNpDPYyzdVcHEPW9LDWhBnu0e2xsWZdiqQK1vs2jzpmUOBmRRCzLV+ QI8bs7wDMQeDO+CJ5IqF+xHxvb77X62a+x4iKSXL+KLlp1KzsmkDoPU+3JBtOgDK3O7D 80asNr7oRLaXD6u20GNBYVsxr8/9cO44r1b5ucauDFxTyCLMEYp8E7CLX4ESdoxDaf4O Tz9wY5i9LxbXtCv8GCp2SChG9NdHb9obpIEuNUkNI9FEUIa3QQJ00hUgEmGrPYGFlICF jntzw1Qu38hss9QHn39rwnJDYhf98RMHvcQMJR7wG2F6UGZctsRYTKtZlVHRkgYYLaCH 2sYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="m0MgJvP/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id mg15-20020a17090b370f00b0028869a825adsi7256034pjb.56.2023.12.11.02.47.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 02:47:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="m0MgJvP/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 548AA807BEEE; Mon, 11 Dec 2023 02:47:40 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234465AbjLKKrP (ORCPT + 99 others); Mon, 11 Dec 2023 05:47:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234452AbjLKKrF (ORCPT ); Mon, 11 Dec 2023 05:47:05 -0500 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C7FBA9; Mon, 11 Dec 2023 02:47:11 -0800 (PST) Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-336210c34ebso852256f8f.1; Mon, 11 Dec 2023 02:47:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702291630; x=1702896430; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ce0zbxA04eGm5L5oadZ3wbq0BpUtWOBHwT553G24fMY=; b=m0MgJvP/1MFI7x77buBlfctY0/RzYMLilDEMElwG+4B5cvBnJ0jet+pjpRwGuv+kIO L6u//eZ7VwXUphq+f5RU/i4DYHAks0E49jbkK2UlpWiZCCBlJYvRzIsgax7kZIaMnbDg ccLErGVG2n6VsuINibBxBWzK7kQvbeegCOywzR37/ffQLzDoQ8TE37hMssFc3WnVLGdd 4A7gIkGIo/p8C7nApEDIQfn8bK76imvOLlmuMzQvtC++/x5uWmO0UmykV9Ilhu6dulUr 8sEkheAzwtcrUKsRxKU1+1eF0R4EKNN5EEvxTGdfmrTri5O5XnRcwKbj57qBT+3a8z+b yzYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702291630; x=1702896430; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ce0zbxA04eGm5L5oadZ3wbq0BpUtWOBHwT553G24fMY=; b=cbP2QW8C2nRhI5/x4AK+F4mRnMj8TDMu0eSBXc5LRM4P5uvLUPBlHbEn4QJwqNdIn5 cvf0sPrdmEVUq8qAdy/06KwTmsXtURvhWqjmXdU4j3j5cDpTp2kRMuMsxQKrsVpefR6E WeBt3F1hOQ9KBIIN8BGHvJfXkj7Vgrv0PK+pfnaGK/WWe7FLeghxR/dGzZYWyG6HQTs4 c8we1ul2OMHQsOahS0ucGPD0E6Ss8XmmYQ277tVV8jEK2Jnlv/Y+hqEfbzS/rwdTLHmA bgZ9R4SfYXM16s/fpyvynAsfSWzCwsA+VzhDicTDwTkHe6xB0X6YInPudiibyYCWrwSk 22CA== X-Gm-Message-State: AOJu0YwXt0GmYW72BXuhKgNAvK2K9FXvQd3zoIorIbxawZVlUrmqmRN0 jaTk+zFuMEurmBMOT0jpi+c= X-Received: by 2002:a05:600c:4195:b0:40c:243f:c36a with SMTP id p21-20020a05600c419500b0040c243fc36amr1555228wmh.206.1702291629926; Mon, 11 Dec 2023 02:47:09 -0800 (PST) Received: from [10.254.108.81] (munvpn.amd.com. [165.204.72.6]) by smtp.gmail.com with ESMTPSA id q14-20020a05600c46ce00b0040c4c9c52a3sm888618wmo.12.2023.12.11.02.47.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Dec 2023 02:47:09 -0800 (PST) Message-ID: <9637309c-af25-4117-be4f-b8cbdc087d60@gmail.com> Date: Mon, 11 Dec 2023 11:47:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [Linaro-mm-sig] [PATCH] drm/scheduler: Unwrap job dependencies Content-Language: en-US To: Rob Clark , dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, =?UTF-8?Q?Christian_K=C3=B6nig?= , Rob Clark , Luben Tuikov , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Daniel Vetter , Sumit Semwal , open list , "open list:DMA BUFFER SHARING FRAMEWORK:Keyword:bdma_?:buf|fence|resvb" , "moderated list:DMA BUFFER SHARING FRAMEWORK:Keyword:bdma_?:buf|fence|resvb" References: <20231205190234.371322-1-robdclark@gmail.com> From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <20231205190234.371322-1-robdclark@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 11 Dec 2023 02:47:40 -0800 (PST) Am 05.12.23 um 20:02 schrieb Rob Clark: > From: Rob Clark > > Container fences have burner contexts, which makes the trick to store at > most one fence per context somewhat useless if we don't unwrap array or > chain fences. > > Signed-off-by: Rob Clark Reviewed-by: Christian König > --- > drivers/gpu/drm/scheduler/sched_main.c | 47 ++++++++++++++++++-------- > 1 file changed, 32 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c > index 9762464e3f99..16b550949c57 100644 > --- a/drivers/gpu/drm/scheduler/sched_main.c > +++ b/drivers/gpu/drm/scheduler/sched_main.c > @@ -52,6 +52,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -684,27 +685,14 @@ void drm_sched_job_arm(struct drm_sched_job *job) > } > EXPORT_SYMBOL(drm_sched_job_arm); > > -/** > - * drm_sched_job_add_dependency - adds the fence as a job dependency > - * @job: scheduler job to add the dependencies to > - * @fence: the dma_fence to add to the list of dependencies. > - * > - * Note that @fence is consumed in both the success and error cases. > - * > - * Returns: > - * 0 on success, or an error on failing to expand the array. > - */ > -int drm_sched_job_add_dependency(struct drm_sched_job *job, > - struct dma_fence *fence) > +static int drm_sched_job_add_single_dependency(struct drm_sched_job *job, > + struct dma_fence *fence) > { > struct dma_fence *entry; > unsigned long index; > u32 id = 0; > int ret; > > - if (!fence) > - return 0; > - > /* Deduplicate if we already depend on a fence from the same context. > * This lets the size of the array of deps scale with the number of > * engines involved, rather than the number of BOs. > @@ -728,6 +716,35 @@ int drm_sched_job_add_dependency(struct drm_sched_job *job, > > return ret; > } > + > +/** > + * drm_sched_job_add_dependency - adds the fence as a job dependency > + * @job: scheduler job to add the dependencies to > + * @fence: the dma_fence to add to the list of dependencies. > + * > + * Note that @fence is consumed in both the success and error cases. > + * > + * Returns: > + * 0 on success, or an error on failing to expand the array. > + */ > +int drm_sched_job_add_dependency(struct drm_sched_job *job, > + struct dma_fence *fence) > +{ > + struct dma_fence_unwrap iter; > + struct dma_fence *f; > + int ret = 0; > + > + dma_fence_unwrap_for_each (f, &iter, fence) { > + dma_fence_get(f); > + ret = drm_sched_job_add_single_dependency(job, f); > + if (ret) > + break; > + } > + > + dma_fence_put(fence); > + > + return ret; > +} > EXPORT_SYMBOL(drm_sched_job_add_dependency); > > /**