Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp692758pxb; Mon, 16 Aug 2021 15:27:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxZttN+rYHJ61V/XX+xFT8kKJpN0ZtMn+J0HLHpg2egd3I3pLpgjjTjaEmykyMnK2XfiOs2 X-Received: by 2002:a6b:7712:: with SMTP id n18mr421163iom.34.1629152877907; Mon, 16 Aug 2021 15:27:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629152877; cv=none; d=google.com; s=arc-20160816; b=VliSIt4P3RloESET04redzqciVUCTQ/GvpV3FBsrfkUrGv7HMvD9vYlKfBMd5iTtYF WIWVTJylYglA+zCfL+wIYOzQEql8iUpVNb5Yyfe4GQYmdVb70EBEx2soKb4JzlluCMNP TXDuqzY6hx6+PMAj3vvJSPInrpUMLN2QUMhYbp4NsZ8OEvIHumgvfGYnUe64qN1xKzyk Dea7Lwm3Oz4IPtiA9ujoFIXATVftzXpMVJXFtzHg2s67xbfjASpzpezx2sKnVcdqZ6Tr v8AFZS5i4Jp4txvaYKyRi7chH48yLfFguQqVidG/31FqWwTU68IZybhvdAx0RokqEJXi k49g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=3pjhlUQ9zfXp80LAsXsFddhwkDCjIr1Qa6F73Rea0zo=; b=NtRux1YuuZe0dEcZDYkx2w/OBz/hbPiKdq+ndnX2raNLH7/GAhOzIwBpqrjXnfIQA6 Ds+rCXD9WwyC+d5SkUzjAQoVAvYHy+DV90FPfPpJkAA75DlnHACU8+9vgTMUYfdCCCz/ Ia0r51ObutGGICiRBaxag3aptJ6Vi6yUPsCD+KH5c3smgn+vfKPZ0zzdrIAbPigGVlKl GJSEMGKxnWkKwQhal9j0fW08Krwcyja1DDVxX//4woeq2WnrzcHL1umGxj+4jdHjlnpt pFZCou2xUG6ycJbK/eafRYVh7CyTTHNf9xqr5xE4CyoZTBlXc7+GsxwcnKT4wLknJNmf Zs0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=R2kIByJ6; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e14si146628ilq.20.2021.08.16.15.27.46; Mon, 16 Aug 2021 15:27:57 -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=@gmail.com header.s=20161025 header.b=R2kIByJ6; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232543AbhHPW0F (ORCPT + 99 others); Mon, 16 Aug 2021 18:26:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232067AbhHPW0E (ORCPT ); Mon, 16 Aug 2021 18:26:04 -0400 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93153C061764; Mon, 16 Aug 2021 15:25:32 -0700 (PDT) Received: by mail-wr1-x42c.google.com with SMTP id k8so6732572wrn.3; Mon, 16 Aug 2021 15:25:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3pjhlUQ9zfXp80LAsXsFddhwkDCjIr1Qa6F73Rea0zo=; b=R2kIByJ61EjHKTZg4V2rq3Z7W17o8o4uPxU/T0mj4fztjC60Yn60rkDWcP6k5wuKSe pOMwhNxGPeTTcHosG5mvzlvzBfVfTIHyPXfDsxEXaHQVkpwMLcYGdU7mN6+B5fozfxKM OTH8GlaS/Js2USbMgOBx7JPthoW4h6Jg5KbFr/zqgfT3gJo3klvwqM672rjTni4+6MPQ Dt45zNlkb5nWvdI7+NUwHYNQ+Vn9N9Qm02MZMN9j0YvET7t1EAtJYpGhxwPGK6d8b3SM uWIAl+1ZGvF9C4dlLBhDCS2JJiNaIhs9c+wVXkzk4Y2vrItPDVH8Ei36QF0oe7kdEHlS j7PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=3pjhlUQ9zfXp80LAsXsFddhwkDCjIr1Qa6F73Rea0zo=; b=lfFvWsXIZVZhtB3piu8Fkmt6WJfBO1h8zerBD/V5BQqFHpKSI0k1PoZUhpEZKsbD9l TTDlc+3h3AVRbtubub34Inrqhu7ZGb9MA8zqlYv0Sff15vJzijniTp6/6pgakztc1SX0 q5FHUVSrsfGKklv+UDeAmsyT6ePyp+Na1E5p8g2ywmTwsL5a0WTjVxw+8lFqhG9WvWnE hu7xPkbb9YxPyz/Gm30cdpZ0Wu8wqDZw/2t5m/diusajgTKSGTQW1GpYZ7qqwiazzL6y g5/KL9vw+BpaBv7iL/ZUKgCXkTy8n8+ZzH0sqTJo8KIpM3oBhmX/hzT7hydY9WJlW9id Q+ww== X-Gm-Message-State: AOAM532SasTeAstOFS3Ws0R6ONYsEVHe7AVYkm2XMezxQlOU45M+nOpe 1O9C+77ncfvhNa+m6ezpFbEv5NsNBQEbDdXw3JQ= X-Received: by 2002:adf:dd11:: with SMTP id a17mr312204wrm.132.1629152731183; Mon, 16 Aug 2021 15:25:31 -0700 (PDT) MIME-Version: 1.0 References: <20210807183804.459850-1-robdclark@gmail.com> <9a7bdcb5-4f6f-539b-060e-d69ec15da874@amd.com> In-Reply-To: <9a7bdcb5-4f6f-539b-060e-d69ec15da874@amd.com> From: Rob Clark Date: Mon, 16 Aug 2021 15:29:49 -0700 Message-ID: Subject: Re: [PATCH v2 0/5] dma-fence: Deadline awareness To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: dri-devel , linux-arm-msm , freedreno , Daniel Vetter , =?UTF-8?Q?Christian_K=C3=B6nig?= , Rob Clark , Alex Deucher , Andrey Grodzovsky , Gustavo Padovan , Jack Zhang , Lee Jones , "moderated list:DMA BUFFER SHARING FRAMEWORK" , open list , "open list:DMA BUFFER SHARING FRAMEWORK" , Luben Tuikov , Steven Price , Tian Tao Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org dma_fence_array looks simple enough, just propagate the deadline to all children. I guess dma_fence_chain is similar (ie. fence is signalled when all children are signalled), the difference being simply that children are added dynamically? BR, -R On Mon, Aug 16, 2021 at 3:17 AM Christian K=C3=B6nig wrote: > > The general approach seems to make sense now I think. > > One minor thing which I'm missing is adding support for this to the > dma_fence_array and dma_fence_chain containers. > > Regards, > Christian. > > Am 07.08.21 um 20:37 schrieb Rob Clark: > > From: Rob Clark > > > > Based on discussion from a previous series[1] to add a "boost" mechanis= m > > when, for example, vblank deadlines are missed. Instead of a boost > > callback, this approach adds a way to set a deadline on the fence, by > > which the waiter would like to see the fence signalled. > > > > I've not yet had a chance to re-work the drm/msm part of this, but > > wanted to send this out as an RFC in case I don't have a chance to > > finish the drm/msm part this week. > > > > Original description: > > > > In some cases, like double-buffered rendering, missing vblanks can > > trick the GPU into running at a lower frequence, when really we > > want to be running at a higher frequency to not miss the vblanks > > in the first place. > > > > This is partially inspired by a trick i915 does, but implemented > > via dma-fence for a couple of reasons: > > > > 1) To continue to be able to use the atomic helpers > > 2) To support cases where display and gpu are different drivers > > > > [1] https://patchwork.freedesktop.org/series/90331/ > > > > v1: https://patchwork.freedesktop.org/series/93035/ > > v2: Move filtering out of later deadlines to fence implementation > > to avoid increasing the size of dma_fence > > > > Rob Clark (5): > > dma-fence: Add deadline awareness > > drm/vblank: Add helper to get next vblank time > > drm/atomic-helper: Set fence deadline for vblank > > drm/scheduler: Add fence deadline support > > drm/msm: Add deadline based boost support > > > > drivers/dma-buf/dma-fence.c | 20 +++++++ > > drivers/gpu/drm/drm_atomic_helper.c | 36 ++++++++++++ > > drivers/gpu/drm/drm_vblank.c | 31 ++++++++++ > > drivers/gpu/drm/msm/msm_fence.c | 76 ++++++++++++++++++++++++= + > > drivers/gpu/drm/msm/msm_fence.h | 20 +++++++ > > drivers/gpu/drm/msm/msm_gpu.h | 1 + > > drivers/gpu/drm/msm/msm_gpu_devfreq.c | 20 +++++++ > > drivers/gpu/drm/scheduler/sched_fence.c | 25 ++++++++ > > drivers/gpu/drm/scheduler/sched_main.c | 3 + > > include/drm/drm_vblank.h | 1 + > > include/drm/gpu_scheduler.h | 6 ++ > > include/linux/dma-fence.h | 16 ++++++ > > 12 files changed, 255 insertions(+) > > >