From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 29EC0C49EA5 for ; Thu, 24 Jun 2021 14:32:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 082C9613F2 for ; Thu, 24 Jun 2021 14:32:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231772AbhFXOed (ORCPT ); Thu, 24 Jun 2021 10:34:33 -0400 Received: from foss.arm.com ([217.140.110.172]:59134 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230377AbhFXOed (ORCPT ); Thu, 24 Jun 2021 10:34:33 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6223CED1; Thu, 24 Jun 2021 07:32:13 -0700 (PDT) Received: from [192.168.1.179] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D9A8A3F718; Thu, 24 Jun 2021 07:32:07 -0700 (PDT) Subject: Re: [PATCH 01/11] drm/sched: Split drm_sched_job_init To: Daniel Vetter , DRI Development Cc: Daniel Vetter , Lucas Stach , Russell King , Christian Gmeiner , Qiang Yu , Rob Herring , Tomeu Vizoso , Alyssa Rosenzweig , David Airlie , Daniel Vetter , Sumit Semwal , =?UTF-8?Q?Christian_K=c3=b6nig?= , Masahiro Yamada , Kees Cook , Adam Borowski , Nick Terrell , Mauro Carvalho Chehab , Paul Menzel , Sami Tolvanen , Viresh Kumar , Alex Deucher , Dave Airlie , Nirmoy Das , Deepak R Varma , Lee Jones , Kevin Wang , Chen Li , Luben Tuikov , =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= , Dennis Li , Maarten Lankhorst , Andrey Grodzovsky , Sonny Jiang , Boris Brezillon , Tian Tao , Jack Zhang , etnaviv@lists.freedesktop.org, lima@lists.freedesktop.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org References: <20210624140025.438303-1-daniel.vetter@ffwll.ch> <20210624140025.438303-2-daniel.vetter@ffwll.ch> From: Steven Price Message-ID: <22cb9d54-bf8a-57d7-452d-565d4886cad0@arm.com> Date: Thu, 24 Jun 2021 15:32:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210624140025.438303-2-daniel.vetter@ffwll.ch> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org On 24/06/2021 15:00, Daniel Vetter wrote: > This is a very confusingly named function, because not just does it > init an object, it arms it and provides a point of no return for > pushing a job into the scheduler. It would be nice if that's a bit > clearer in the interface. > > But the real reason is that I want to push the dependency tracking > helpers into the scheduler code, and that means drm_sched_job_init > must be called a lot earlier, without arming the job. > > Signed-off-by: Daniel Vetter > Cc: Lucas Stach > Cc: Russell King > Cc: Christian Gmeiner > Cc: Qiang Yu > Cc: Rob Herring > Cc: Tomeu Vizoso > Cc: Steven Price > Cc: Alyssa Rosenzweig > Cc: David Airlie > Cc: Daniel Vetter > Cc: Sumit Semwal > Cc: "Christian König" > Cc: Masahiro Yamada > Cc: Kees Cook > Cc: Adam Borowski > Cc: Nick Terrell > Cc: Mauro Carvalho Chehab > Cc: Paul Menzel > Cc: Sami Tolvanen > Cc: Viresh Kumar > Cc: Alex Deucher > Cc: Dave Airlie > Cc: Nirmoy Das > Cc: Deepak R Varma > Cc: Lee Jones > Cc: Kevin Wang > Cc: Chen Li > Cc: Luben Tuikov > Cc: "Marek Olšák" > Cc: Dennis Li > Cc: Maarten Lankhorst > Cc: Andrey Grodzovsky > Cc: Sonny Jiang > Cc: Boris Brezillon > Cc: Tian Tao > Cc: Jack Zhang > Cc: etnaviv@lists.freedesktop.org > Cc: lima@lists.freedesktop.org > Cc: linux-media@vger.kernel.org > Cc: linaro-mm-sig@lists.linaro.org > --- > .gitignore | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 ++ > drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 ++ > drivers/gpu/drm/etnaviv/etnaviv_sched.c | 2 ++ > drivers/gpu/drm/lima/lima_sched.c | 2 ++ > drivers/gpu/drm/panfrost/panfrost_job.c | 2 ++ > drivers/gpu/drm/scheduler/sched_entity.c | 6 +++--- > drivers/gpu/drm/scheduler/sched_fence.c | 15 ++++++++++----- > drivers/gpu/drm/scheduler/sched_main.c | 23 ++++++++++++++++++++++- > include/drm/gpu_scheduler.h | 6 +++++- > 10 files changed, 51 insertions(+), 10 deletions(-) > > diff --git a/.gitignore b/.gitignore > index 7afd412dadd2..52433a930299 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -66,6 +66,7 @@ modules.order > /modules.builtin > /modules.builtin.modinfo > /modules.nsdeps > +*.builtin I don't think this belongs in this patch! [...] > diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c > index beb62c8fc851..1e950534b9b0 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_job.c > +++ b/drivers/gpu/drm/panfrost/panfrost_job.c > @@ -244,6 +244,8 @@ int panfrost_job_push(struct panfrost_job *job) > goto unlock; > } > > + drm_sched_job_arm(&job->base); > + > job->render_done_fence = dma_fence_get(&job->base.s_fence->finished); > > ret = panfrost_acquire_object_fences(job->bos, job->bo_count, Acked-by: Steven Price From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7016CC49EA6 for ; Thu, 24 Jun 2021 14:32:15 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3B0FA613EA for ; Thu, 24 Jun 2021 14:32:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3B0FA613EA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B06E96EC09; Thu, 24 Jun 2021 14:32:14 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by gabe.freedesktop.org (Postfix) with ESMTP id 3DC5F6EC09; Thu, 24 Jun 2021 14:32:14 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6223CED1; Thu, 24 Jun 2021 07:32:13 -0700 (PDT) Received: from [192.168.1.179] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D9A8A3F718; Thu, 24 Jun 2021 07:32:07 -0700 (PDT) Subject: Re: [PATCH 01/11] drm/sched: Split drm_sched_job_init To: Daniel Vetter , DRI Development References: <20210624140025.438303-1-daniel.vetter@ffwll.ch> <20210624140025.438303-2-daniel.vetter@ffwll.ch> From: Steven Price Message-ID: <22cb9d54-bf8a-57d7-452d-565d4886cad0@arm.com> Date: Thu, 24 Jun 2021 15:32:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210624140025.438303-2-daniel.vetter@ffwll.ch> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Adam Borowski , David Airlie , Viresh Kumar , Sonny Jiang , Nirmoy Das , Daniel Vetter , Lee Jones , Jack Zhang , lima@lists.freedesktop.org, Mauro Carvalho Chehab , Masahiro Yamada , Luben Tuikov , Alyssa Rosenzweig , Sami Tolvanen , Russell King , Dave Airlie , Dennis Li , Chen Li , Paul Menzel , Kees Cook , =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= , Kevin Wang , etnaviv@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Nick Terrell , Deepak R Varma , Tomeu Vizoso , Boris Brezillon , Qiang Yu , Alex Deucher , Tian Tao , linux-media@vger.kernel.org, =?UTF-8?Q?Christian_K=c3=b6nig?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 24/06/2021 15:00, Daniel Vetter wrote: > This is a very confusingly named function, because not just does it > init an object, it arms it and provides a point of no return for > pushing a job into the scheduler. It would be nice if that's a bit > clearer in the interface. > > But the real reason is that I want to push the dependency tracking > helpers into the scheduler code, and that means drm_sched_job_init > must be called a lot earlier, without arming the job. > > Signed-off-by: Daniel Vetter > Cc: Lucas Stach > Cc: Russell King > Cc: Christian Gmeiner > Cc: Qiang Yu > Cc: Rob Herring > Cc: Tomeu Vizoso > Cc: Steven Price > Cc: Alyssa Rosenzweig > Cc: David Airlie > Cc: Daniel Vetter > Cc: Sumit Semwal > Cc: "Christian König" > Cc: Masahiro Yamada > Cc: Kees Cook > Cc: Adam Borowski > Cc: Nick Terrell > Cc: Mauro Carvalho Chehab > Cc: Paul Menzel > Cc: Sami Tolvanen > Cc: Viresh Kumar > Cc: Alex Deucher > Cc: Dave Airlie > Cc: Nirmoy Das > Cc: Deepak R Varma > Cc: Lee Jones > Cc: Kevin Wang > Cc: Chen Li > Cc: Luben Tuikov > Cc: "Marek Olšák" > Cc: Dennis Li > Cc: Maarten Lankhorst > Cc: Andrey Grodzovsky > Cc: Sonny Jiang > Cc: Boris Brezillon > Cc: Tian Tao > Cc: Jack Zhang > Cc: etnaviv@lists.freedesktop.org > Cc: lima@lists.freedesktop.org > Cc: linux-media@vger.kernel.org > Cc: linaro-mm-sig@lists.linaro.org > --- > .gitignore | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 ++ > drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 ++ > drivers/gpu/drm/etnaviv/etnaviv_sched.c | 2 ++ > drivers/gpu/drm/lima/lima_sched.c | 2 ++ > drivers/gpu/drm/panfrost/panfrost_job.c | 2 ++ > drivers/gpu/drm/scheduler/sched_entity.c | 6 +++--- > drivers/gpu/drm/scheduler/sched_fence.c | 15 ++++++++++----- > drivers/gpu/drm/scheduler/sched_main.c | 23 ++++++++++++++++++++++- > include/drm/gpu_scheduler.h | 6 +++++- > 10 files changed, 51 insertions(+), 10 deletions(-) > > diff --git a/.gitignore b/.gitignore > index 7afd412dadd2..52433a930299 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -66,6 +66,7 @@ modules.order > /modules.builtin > /modules.builtin.modinfo > /modules.nsdeps > +*.builtin I don't think this belongs in this patch! [...] > diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c > index beb62c8fc851..1e950534b9b0 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_job.c > +++ b/drivers/gpu/drm/panfrost/panfrost_job.c > @@ -244,6 +244,8 @@ int panfrost_job_push(struct panfrost_job *job) > goto unlock; > } > > + drm_sched_job_arm(&job->base); > + > job->render_done_fence = dma_fence_get(&job->base.s_fence->finished); > > ret = panfrost_acquire_object_fences(job->bos, job->bo_count, Acked-by: Steven Price