[PATCH] drm/xe/xe_gt_debugfs: Add synchronous gt reset debugfs
Matthew Brost
matthew.brost at intel.com
Wed Jun 5 16:19:44 UTC 2024
On Wed, Jun 05, 2024 at 08:08:28AM -0700, Jonathan Cavitt wrote:
> We currently have debugfs support that allows the userspace to initiate
> an asynchronous gt reset on command. However, userspace may also wish
> to wait for the completion of the gt reset before performing any
> additional work. To that end, add a version of the force_reset gt
> debugfs function that operates synchronously.
>
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1068
> Suggested-by: Matthew Brost <matthew.brost at intel.com>
Longterm we may want to switch resets to a single debugfs entry which
accepts a write value and takes actions based on this. I am ok with this
going in but something to keep in mind.
With that:
Reviewed-by: Matthew Brost <matthew.brost at intel.com>
> Signed-off-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
> CC: John Harrison <john.c.harrison at intel.com>
> CC: Stuart Summers <stuart.summers at intel.com>
> ---
> drivers/gpu/drm/xe/xe_gt_debugfs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_gt_debugfs.c b/drivers/gpu/drm/xe/xe_gt_debugfs.c
> index 66f897a9b6ca9..5e7fd937917a1 100644
> --- a/drivers/gpu/drm/xe/xe_gt_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_gt_debugfs.c
> @@ -116,6 +116,17 @@ static int force_reset(struct xe_gt *gt, struct drm_printer *p)
> return 0;
> }
>
> +static int force_reset_sync(struct xe_gt *gt, struct drm_printer *p)
> +{
> + xe_pm_runtime_get(gt_to_xe(gt));
> + xe_gt_reset_async(gt);
> + xe_pm_runtime_put(gt_to_xe(gt));
> +
> + flush_work(>->reset.worker);
> +
> + return 0;
> +}
> +
> static int sa_info(struct xe_gt *gt, struct drm_printer *p)
> {
> struct xe_tile *tile = gt_to_tile(gt);
> @@ -261,6 +272,7 @@ static int vecs_default_lrc(struct xe_gt *gt, struct drm_printer *p)
> static const struct drm_info_list debugfs_list[] = {
> {"hw_engines", .show = xe_gt_debugfs_simple_show, .data = hw_engines},
> {"force_reset", .show = xe_gt_debugfs_simple_show, .data = force_reset},
> + {"force_reset_sync", .show = xe_gt_debugfs_simple_show, .data = force_reset_sync},
> {"sa_info", .show = xe_gt_debugfs_simple_show, .data = sa_info},
> {"topology", .show = xe_gt_debugfs_simple_show, .data = topology},
> {"steering", .show = xe_gt_debugfs_simple_show, .data = steering},
> --
> 2.25.1
>
More information about the Intel-xe
mailing list