Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp747645pxu; Fri, 23 Oct 2020 12:13:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwV1t/hevPKYxHA/nthXRH4FERG98xI+lnaxSYIxaQz936ATlyq0OhZz/T1TtYS3f4K1tPn X-Received: by 2002:a17:906:a211:: with SMTP id r17mr3400370ejy.0.1603480436030; Fri, 23 Oct 2020 12:13:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603480436; cv=none; d=google.com; s=arc-20160816; b=kv9dIlMaebUHISmiolCiBOT6UKmNlHBZJeKAy+ETxuLeCKc7wU57fW+sAUZv0AvfxV R0wnTPZhKCyXKuTHtskKZG+OwoHY/JTJSJuwOYMVB/2/NOtviM7PYJhRdC6h+hhIZcuT QdQjN1UrqYBGVPOWnOsl7hUktOJGQXlwL/Kz1v6CFoxSUxbKGTfUZJloL4l1zSBDWvBq 0a8bULYm0owC79cQsrdWUMooJZxYElMYAnmLnYHrHHtHSr8OZerepG0feX2t2Dl9tNp3 418vbOWTZNtu6aeLqFmlVhArz6OrySDYMGRz/e5DqOCK+sjRF/FqFgh7c/HJIXeRV4Eu n92g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:message-id; bh=4UkXvFlGpWEuFxbS+4rA4KgVq9fmBrlSz4+1gg3ci2g=; b=r5XEs0Eqvz0527qHZoD368rfT3jChk1jhxn1ny8GC7vIbiJO2WeZ0Ufj1iNWgshY4P WRx7CqboD/eX6kRWM3ZwOoHiIgPgf/eX6zFQIvpBxvSIS3DGblAb7bB1hmbfbTP5Jf92 u2hW3NObEhVOS4d+sj1c+RgvjzhQfP0YG25lyMXpzAhOLJLzv95tn9613blD/dRiRErW Pq5oDkPrMlJxJ1oxROfIWoeg4XhYATJkV8VcadF4l69u7J1FNksrXlt5bDZst0SRM9/w c7RB6UpgOR+EgTrJv3xfjXQWBuJf91RwU5L1SY3FFFbvIblQw33Uh7bJO+Ap5SaWHnlA 7tXw== ARC-Authentication-Results: i=1; mx.google.com; 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 b18si1681359edh.71.2020.10.23.12.13.33; Fri, 23 Oct 2020 12:13:56 -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; 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 S1750617AbgJWSUI (ORCPT + 99 others); Fri, 23 Oct 2020 14:20:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750464AbgJWSUI (ORCPT ); Fri, 23 Oct 2020 14:20:08 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D0B5C0613D4 for ; Fri, 23 Oct 2020 11:20:08 -0700 (PDT) Received: from [2a0a:edc0:0:900:6245:cbff:fea0:1793] (helo=kresse.office.stw.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1kW1fY-0006et-DX; Fri, 23 Oct 2020 20:20:05 +0200 Message-ID: From: Lucas Stach To: Rob Clark , dri-devel@lists.freedesktop.org Cc: Rob Clark , David Airlie , linux-arm-msm@vger.kernel.org, open list , Sean Paul , "Kristian H . Kristensen" , freedreno@lists.freedesktop.org Date: Fri, 23 Oct 2020 20:20:02 +0200 In-Reply-To: <20201023165136.561680-24-robdclark@gmail.com> References: <20201023165136.561680-1-robdclark@gmail.com> <20201023165136.561680-24-robdclark@gmail.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.30.5-1.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 2a0a:edc0:0:900:6245:cbff:fea0:1793 X-SA-Exim-Mail-From: l.stach@pengutronix.de X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-1.5 required=4.0 tests=AWL,BAYES_00,RDNS_NONE, SPF_HELO_NONE,SPF_SOFTFAIL autolearn=no autolearn_force=no version=3.4.2 Subject: Re: [PATCH v4 23/23] drm/msm: Don't implicit-sync if only a single ring X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.ext.pengutronix.de) X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fr, 2020-10-23 at 09:51 -0700, Rob Clark wrote: > From: Rob Clark > > If there is only a single ring (no-preemption), everything is FIFO order > and there is no need to implicit-sync. > > Mesa should probably just always use MSM_SUBMIT_NO_IMPLICIT, as behavior > is undefined when fences are not used to synchronize buffer usage across > contexts (which is the only case where multiple different priority rings > could come into play). Really, doesn't this break cross-device implicit sync? Okay, you may not have many peripherals that rely on implicit sync on devices where Adreno is usually found, but it seems rather heavy-handed. Wouldn't it be better to only ignore fences from your own ring context in the implicit sync, like we do in the common DRM scheduler (drm_sched_dependency_optimized)? Regards, Lucas > Signed-off-by: Rob Clark > Reviewed-by: Kristian H. Kristensen > --- > drivers/gpu/drm/msm/msm_gem_submit.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c > index d04c349d8112..b6babc7f9bb8 100644 > --- a/drivers/gpu/drm/msm/msm_gem_submit.c > +++ b/drivers/gpu/drm/msm/msm_gem_submit.c > @@ -283,7 +283,7 @@ static int submit_lock_objects(struct msm_gem_submit *submit) > return ret; > } > > -static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit) > +static int submit_fence_sync(struct msm_gem_submit *submit, bool implicit_sync) > { > int i, ret = 0; > > @@ -303,7 +303,7 @@ static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit) > return ret; > } > > - if (no_implicit) > + if (!implicit_sync) > continue; > > ret = msm_gem_sync_object(&msm_obj->base, submit->ring->fctx, > @@ -774,7 +774,8 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, > if (ret) > goto out; > > - ret = submit_fence_sync(submit, !!(args->flags & MSM_SUBMIT_NO_IMPLICIT)); > + ret = submit_fence_sync(submit, (gpu->nr_rings > 1) && > + !(args->flags & MSM_SUBMIT_NO_IMPLICIT)); > if (ret) > goto out; >