From: Jani Nikula <jani.nikula@linux.intel.com>
To: "André Almeida" <andrealmeid@igalia.com>,
dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org
Cc: pierre-eric.pelloux-prayer@amd.com,
"André Almeida" <andrealmeid@igalia.com>,
"'Marek Olšák'" <maraeo@gmail.com>,
"Timur Kristóf" <timur.kristof@gmail.com>,
"Michel Dänzer" <michel.daenzer@mailbox.org>,
"Samuel Pitoiset" <samuel.pitoiset@gmail.com>,
"Pekka Paalanen" <ppaalanen@gmail.com>,
kernel-dev@igalia.com, alexander.deucher@amd.com,
christian.koenig@amd.com
Subject: Re: [RFC PATCH v3 4/4] drm/i915: Implement DRM_IOCTL_GET_RESET
Date: Wed, 21 Jun 2023 10:38:06 +0300 [thread overview]
Message-ID: <87ilbhfeox.fsf@intel.com> (raw)
In-Reply-To: <20230621005719.836857-5-andrealmeid@igalia.com>
On Tue, 20 Jun 2023, André Almeida <andrealmeid@igalia.com> wrote:
> Implement get_reset ioctl for i915.
>
> Signed-off-by: André Almeida <andrealmeid@igalia.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_context.c | 18 ++++++++++++++++++
> drivers/gpu/drm/i915/gem/i915_gem_context.h | 2 ++
> .../gpu/drm/i915/gem/i915_gem_context_types.h | 2 ++
> drivers/gpu/drm/i915/i915_driver.c | 2 ++
> 4 files changed, 24 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index 9a9ff84c90d7..fba8c9bbc7e9 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> @@ -1666,6 +1666,8 @@ i915_gem_create_context(struct drm_i915_private *i915,
> ctx->uses_protected_content = true;
> }
>
> + ctx->dev_reset_counter = i915_reset_count(&i915->gpu_error);
> +
> trace_i915_context_create(ctx);
>
> return ctx;
> @@ -2558,6 +2560,22 @@ int i915_gem_context_reset_stats_ioctl(struct drm_device *dev,
> return 0;
> }
>
> +int i915_gem_get_reset(struct drm_file *filp, struct drm_device *dev,
> + struct drm_get_reset *reset)
> +{
> + struct i915_gem_context *ctx;
> +
> + ctx = i915_gem_context_lookup(file->driver_priv, reset->ctx_id);
> + if (IS_ERR(ctx))
> + return PTR_ERR(ctx);
> +
> + reset->dev_reset_count = i915_reset_count(&i915->gpu_error) - ctx->dev_reset_count;
> + reset->ctx_reset_count = ctx->guilty_count;
> +
> + i915_gem_context_put(ctx);
Usually return is preceded by a blank line.
> + return 0;
> +}
> +
> /* GEM context-engines iterator: for_each_gem_engine() */
> struct intel_context *
> i915_gem_engines_iter_next(struct i915_gem_engines_iter *it)
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.h b/drivers/gpu/drm/i915/gem/i915_gem_context.h
> index e5b0f66ea1fe..9ee119d8123f 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.h
> @@ -138,6 +138,8 @@ int i915_gem_context_setparam_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file_priv);
> int i915_gem_context_reset_stats_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file);
> +int i915_gem_get_reset(struct drm_file *file_priv, struct drm_device *dev,
> + struct drm_get_reset *reset);
>
> struct i915_gem_context *
> i915_gem_context_lookup(struct drm_i915_file_private *file_priv, u32 id);
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> index cb78214a7dcd..2e4cf0f0d3dc 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> @@ -414,6 +414,8 @@ struct i915_gem_context {
> /** @engines: list of stale engines */
> struct list_head engines;
> } stale;
> +
> + uint64_t dev_reset_counter;
u64 please. i915 only uses the kernel fixed types.
Please do wait for review on the actual content before reposting.
BR,
Jani.
> };
>
> #endif /* __I915_GEM_CONTEXT_TYPES_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 97244541ec28..640304141ada 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1805,6 +1805,8 @@ static const struct drm_driver i915_drm_driver = {
> .postclose = i915_driver_postclose,
> .show_fdinfo = i915_drm_client_fdinfo,
>
> + .get_reset = i915_gem_get_reset,
> +
> .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
> .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
> .gem_prime_import = i915_gem_prime_import,
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: "André Almeida" <andrealmeid@igalia.com>,
dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org
Cc: pierre-eric.pelloux-prayer@amd.com,
"André Almeida" <andrealmeid@igalia.com>,
"'Marek Olšák'" <maraeo@gmail.com>,
"Michel Dänzer" <michel.daenzer@mailbox.org>,
"Timur Kristóf" <timur.kristof@gmail.com>,
"Pekka Paalanen" <ppaalanen@gmail.com>,
"Samuel Pitoiset" <samuel.pitoiset@gmail.com>,
kernel-dev@igalia.com, alexander.deucher@amd.com,
christian.koenig@amd.com
Subject: Re: [RFC PATCH v3 4/4] drm/i915: Implement DRM_IOCTL_GET_RESET
Date: Wed, 21 Jun 2023 10:38:06 +0300 [thread overview]
Message-ID: <87ilbhfeox.fsf@intel.com> (raw)
In-Reply-To: <20230621005719.836857-5-andrealmeid@igalia.com>
On Tue, 20 Jun 2023, André Almeida <andrealmeid@igalia.com> wrote:
> Implement get_reset ioctl for i915.
>
> Signed-off-by: André Almeida <andrealmeid@igalia.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_context.c | 18 ++++++++++++++++++
> drivers/gpu/drm/i915/gem/i915_gem_context.h | 2 ++
> .../gpu/drm/i915/gem/i915_gem_context_types.h | 2 ++
> drivers/gpu/drm/i915/i915_driver.c | 2 ++
> 4 files changed, 24 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index 9a9ff84c90d7..fba8c9bbc7e9 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> @@ -1666,6 +1666,8 @@ i915_gem_create_context(struct drm_i915_private *i915,
> ctx->uses_protected_content = true;
> }
>
> + ctx->dev_reset_counter = i915_reset_count(&i915->gpu_error);
> +
> trace_i915_context_create(ctx);
>
> return ctx;
> @@ -2558,6 +2560,22 @@ int i915_gem_context_reset_stats_ioctl(struct drm_device *dev,
> return 0;
> }
>
> +int i915_gem_get_reset(struct drm_file *filp, struct drm_device *dev,
> + struct drm_get_reset *reset)
> +{
> + struct i915_gem_context *ctx;
> +
> + ctx = i915_gem_context_lookup(file->driver_priv, reset->ctx_id);
> + if (IS_ERR(ctx))
> + return PTR_ERR(ctx);
> +
> + reset->dev_reset_count = i915_reset_count(&i915->gpu_error) - ctx->dev_reset_count;
> + reset->ctx_reset_count = ctx->guilty_count;
> +
> + i915_gem_context_put(ctx);
Usually return is preceded by a blank line.
> + return 0;
> +}
> +
> /* GEM context-engines iterator: for_each_gem_engine() */
> struct intel_context *
> i915_gem_engines_iter_next(struct i915_gem_engines_iter *it)
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.h b/drivers/gpu/drm/i915/gem/i915_gem_context.h
> index e5b0f66ea1fe..9ee119d8123f 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.h
> @@ -138,6 +138,8 @@ int i915_gem_context_setparam_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file_priv);
> int i915_gem_context_reset_stats_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file);
> +int i915_gem_get_reset(struct drm_file *file_priv, struct drm_device *dev,
> + struct drm_get_reset *reset);
>
> struct i915_gem_context *
> i915_gem_context_lookup(struct drm_i915_file_private *file_priv, u32 id);
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> index cb78214a7dcd..2e4cf0f0d3dc 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
> @@ -414,6 +414,8 @@ struct i915_gem_context {
> /** @engines: list of stale engines */
> struct list_head engines;
> } stale;
> +
> + uint64_t dev_reset_counter;
u64 please. i915 only uses the kernel fixed types.
Please do wait for review on the actual content before reposting.
BR,
Jani.
> };
>
> #endif /* __I915_GEM_CONTEXT_TYPES_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 97244541ec28..640304141ada 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1805,6 +1805,8 @@ static const struct drm_driver i915_drm_driver = {
> .postclose = i915_driver_postclose,
> .show_fdinfo = i915_drm_client_fdinfo,
>
> + .get_reset = i915_gem_get_reset,
> +
> .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
> .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
> .gem_prime_import = i915_gem_prime_import,
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2023-06-21 7:38 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-21 0:57 [RFC PATCH v3 0/4] drm: Standardize device reset notification André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 0:57 ` [RFC PATCH v3 1/4] drm/doc: Document DRM device reset expectations André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 7:58 ` Pekka Paalanen
2023-06-21 7:58 ` Pekka Paalanen
2023-06-21 7:58 ` Pekka Paalanen
2023-06-21 16:28 ` André Almeida
2023-06-21 16:28 ` André Almeida
2023-06-21 16:28 ` André Almeida
2023-06-22 8:12 ` Pekka Paalanen
2023-06-22 8:12 ` Pekka Paalanen
2023-06-22 8:12 ` Pekka Paalanen
2023-06-26 16:15 ` André Almeida
2023-06-26 16:15 ` André Almeida
2023-06-26 16:15 ` André Almeida
2023-06-21 0:57 ` [RFC PATCH v3 2/4] drm: Create DRM_IOCTL_GET_RESET André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 8:09 ` Pekka Paalanen
2023-06-21 8:09 ` Pekka Paalanen
2023-06-21 8:09 ` Pekka Paalanen
2023-06-21 16:33 ` André Almeida
2023-06-21 16:33 ` André Almeida
2023-06-21 16:33 ` André Almeida
2023-06-22 8:22 ` Pekka Paalanen
2023-06-22 8:22 ` Pekka Paalanen
2023-06-22 8:22 ` Pekka Paalanen
2023-06-22 9:59 ` Christian König
2023-06-22 9:59 ` Christian König
2023-06-22 9:59 ` Christian König
2023-06-21 0:57 ` [RFC PATCH v3 3/4] drm/amdgpu: Implement DRM_IOCTL_GET_RESET André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 7:40 ` Christian König
2023-06-21 7:40 ` Christian König
2023-06-21 7:40 ` Christian König
2023-06-21 16:38 ` André Almeida
2023-06-21 16:38 ` André Almeida
2023-06-21 16:38 ` André Almeida
2023-06-22 7:45 ` Christian König
2023-06-22 7:45 ` Christian König
2023-06-22 7:45 ` Christian König
2023-06-21 0:57 ` [RFC PATCH v3 4/4] drm/i915: " André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 0:57 ` André Almeida
2023-06-21 7:38 ` Jani Nikula [this message]
2023-06-21 7:38 ` Jani Nikula
2023-06-21 7:42 ` [RFC PATCH v3 0/4] drm: Standardize device reset notification Christian König
2023-06-21 7:42 ` Christian König
2023-06-21 7:42 ` Christian König
2023-06-21 15:06 ` André Almeida
2023-06-21 15:06 ` André Almeida
2023-06-21 15:06 ` André Almeida
2023-06-21 15:09 ` Christian König
2023-06-21 15:09 ` Christian König
2023-06-21 15:09 ` Christian König
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=87ilbhfeox.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=andrealmeid@igalia.com \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel-dev@igalia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maraeo@gmail.com \
--cc=michel.daenzer@mailbox.org \
--cc=pierre-eric.pelloux-prayer@amd.com \
--cc=ppaalanen@gmail.com \
--cc=samuel.pitoiset@gmail.com \
--cc=timur.kristof@gmail.com \
/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.