From: Philipp Stanner <pstanner@redhat.com>
To: Matthew Brost <matthew.brost@intel.com>
Cc: "Luben Tuikov" <ltuikov89@gmail.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Christian König" <christian.koenig@amd.com>,
"Tvrtko Ursulin" <tursulin@igalia.com>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] drm/sched: warn about drm_sched_job_init()'s partial init
Date: Fri, 25 Oct 2024 18:04:27 +0200 [thread overview]
Message-ID: <243743c08eca2da4882d1c5fb3b01b68f044ee4a.camel@redhat.com> (raw)
In-Reply-To: <ZxsDRWxVRt2fCKpF@DUT025-TGLU.fm.intel.com>
On Fri, 2024-10-25 at 02:32 +0000, Matthew Brost wrote:
> On Wed, Oct 23, 2024 at 04:15:31PM +0200, Philipp Stanner wrote:
> > drm_sched_job_init()'s name suggests that after the function
> > succeeded,
> > parameter "job" will be fully initialized. This is not the case;
> > some
> > members are only later set, notably drm_sched_job.sched by
> > drm_sched_job_arm().
> >
> > Document that drm_sched_job_init() does not set all struct members.
> >
> > Document the lifetime of drm_sched_job.sched.
> >
> > Signed-off-by: Philipp Stanner <pstanner@redhat.com>
>
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>
>
Applied to drm-misc-next, thank you.
P.
> > ---
> > drivers/gpu/drm/scheduler/sched_main.c | 4 ++++
> > include/drm/gpu_scheduler.h | 8 ++++++++
> > 2 files changed, 12 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/scheduler/sched_main.c
> > b/drivers/gpu/drm/scheduler/sched_main.c
> > index dab8cca79eb7..8c1c4739f36d 100644
> > --- a/drivers/gpu/drm/scheduler/sched_main.c
> > +++ b/drivers/gpu/drm/scheduler/sched_main.c
> > @@ -771,6 +771,10 @@ EXPORT_SYMBOL(drm_sched_resubmit_jobs);
> > * Drivers must make sure drm_sched_job_cleanup() if this function
> > returns
> > * successfully, even when @job is aborted before
> > drm_sched_job_arm() is called.
> > *
> > + * Note that this function does not assign a valid value to each
> > struct member
> > + * of struct drm_sched_job. Take a look at that struct's
> > documentation to see
> > + * who sets which struct member with what lifetime.
> > + *
> > * WARNING: amdgpu abuses &drm_sched.ready to signal when the
> > hardware
> > * has died, which can mean that there's no valid runqueue for a
> > @entity.
> > * This function returns -ENOENT in this case (which probably
> > should be -EIO as
> > diff --git a/include/drm/gpu_scheduler.h
> > b/include/drm/gpu_scheduler.h
> > index ab161289d1bf..95e17504e46a 100644
> > --- a/include/drm/gpu_scheduler.h
> > +++ b/include/drm/gpu_scheduler.h
> > @@ -340,6 +340,14 @@ struct drm_sched_fence
> > *to_drm_sched_fence(struct dma_fence *f);
> > struct drm_sched_job {
> > struct spsc_node queue_node;
> > struct list_head list;
> > +
> > + /**
> > + * @sched:
> > + *
> > + * The scheduler this job is or will be scheduled on. Gets
> > set by
> > + * drm_sched_job_arm(). Valid until
> > drm_sched_backend_ops.free_job()
> > + * has finished.
> > + */
> > struct drm_gpu_scheduler *sched;
> > struct drm_sched_fence *s_fence;
> >
> > --
> > 2.47.0
> >
>
prev parent reply other threads:[~2024-10-25 16:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-23 14:15 [PATCH] drm/sched: warn about drm_sched_job_init()'s partial init Philipp Stanner
2024-10-25 2:32 ` Matthew Brost
2024-10-25 16:04 ` Philipp Stanner [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=243743c08eca2da4882d1c5fb3b01b68f044ee4a.camel@redhat.com \
--to=pstanner@redhat.com \
--cc=airlied@gmail.com \
--cc=christian.koenig@amd.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ltuikov89@gmail.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matthew.brost@intel.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=tursulin@igalia.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.