All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Brost <matthew.brost@intel.com>
To: Philipp Stanner <pstanner@redhat.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 02:32:37 +0000	[thread overview]
Message-ID: <ZxsDRWxVRt2fCKpF@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <20241023141530.113370-2-pstanner@redhat.com>

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>

> ---
>  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
> 

  reply	other threads:[~2024-10-25  2:33 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 [this message]
2024-10-25 16:04   ` Philipp Stanner

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=ZxsDRWxVRt2fCKpF@DUT025-TGLU.fm.intel.com \
    --to=matthew.brost@intel.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=mripard@kernel.org \
    --cc=pstanner@redhat.com \
    --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.