From: Raag Jadav <raag.jadav@intel.com>
To: airlied@gmail.com, simona@ffwll.ch, lucas.demarchi@intel.com,
thomas.hellstrom@linux.intel.com, rodrigo.vivi@intel.com,
jani.nikula@linux.intel.com, andriy.shevchenko@linux.intel.com,
joonas.lahtinen@linux.intel.com, tursulin@ursulin.net,
lina@asahilina.net
Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
dri-devel@lists.freedesktop.org, himal.prasad.ghimiray@intel.com,
francois.dugast@intel.com, aravind.iddamsetty@linux.intel.com,
anshuman.gupta@intel.com, andi.shyti@linux.intel.com,
matthew.d.roper@intel.com, Raag Jadav <raag.jadav@intel.com>
Subject: [PATCH v7 3/5] drm/doc: Document device wedged event
Date: Mon, 30 Sep 2024 13:08:43 +0530 [thread overview]
Message-ID: <20240930073845.347326-4-raag.jadav@intel.com> (raw)
In-Reply-To: <20240930073845.347326-1-raag.jadav@intel.com>
Add documentation for device wedged event along with its consumer
expectations. For now it is amended to 'Device reset' chapter, but
with extended functionality in the future it can be refactored into
its own chapter.
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
Documentation/gpu/drm-uapi.rst | 42 ++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
index 370d820be248..c1186dfd283d 100644
--- a/Documentation/gpu/drm-uapi.rst
+++ b/Documentation/gpu/drm-uapi.rst
@@ -313,6 +313,22 @@ driver separately, with no common DRM interface. Ideally this should be properly
integrated at DRM scheduler to provide a common ground for all drivers. After a
reset, KMD should reject new command submissions for affected contexts.
+Drivers can optionally make use of device wedged event (implemented as
+drm_dev_wedged_event() in DRM subsystem) which notifies userspace of wedged
+(hanged/unusable) state of the DRM device through a uevent. This is useful
+especially in cases where the device is no longer operating as expected even
+after a hardware reset and has become unrecoverable from driver context.
+Purpose of this implementation is to provide drivers a generic way to recover
+with the help of userspace intervention, and hence the vendor agnostic nature
+of the event.
+
+Different drivers may have different ideas of a "wedged device" depending on
+their hardware implementation. It is up to the drivers to decide when they see
+the need for recovery and how they want to recover from the available methods.
+Current implementation defines three recovery methods, out of which, drivers
+can choose to support any one or multiple of them. Preferred recovery method
+will be sent in the uevent environment as WEDGED=<method>.
+
User Mode Driver
----------------
@@ -323,6 +339,32 @@ if the UMD requires it. After detecting a reset, UMD will then proceed to report
it to the application using the appropriate API error code, as explained in the
section below about robustness.
+On device wedged scenario, userspace will receive a uevent from KMD with
+its preferred recovery method in the uevent environment as WEDGED=<method>.
+Userspace consumers (sysadmin) can define udev rules to parse this event
+and take respective action to recover the device.
+
+.. table:: Wedged Device Recovery
+
+ =============== ==================================
+ Recovery method Consumer expectations
+ =============== ==================================
+ rebind unbind + rebind driver
+ bus-reset unbind + reset bus device + rebind
+ reboot reboot system
+ =============== ==================================
+
+Userspace consumers can optionally read the recovery methods supported by the
+device via ``wedge_recovery`` sysfs attribute::
+
+ $ cat /sys/class/drm/card<N>/wedge_recovery
+ rebind
+ bus-reset
+ reboot
+
+This is useful in cases where the device supports multiple recovery methods
+which can be used as fallbacks.
+
Robustness
----------
--
2.34.1
next prev parent reply other threads:[~2024-09-30 7:39 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-30 7:38 [PATCH v7 0/5] Introduce DRM device wedged event Raag Jadav
2024-09-30 7:38 ` [PATCH v7 1/5] drm: Introduce " Raag Jadav
2024-09-30 12:59 ` Andy Shevchenko
2024-10-01 5:08 ` Raag Jadav
2024-10-01 12:07 ` Andy Shevchenko
2024-10-01 14:18 ` Raag Jadav
2024-10-01 14:54 ` Andy Shevchenko
2024-10-01 16:42 ` Raag Jadav
2024-10-01 12:20 ` Michal Wajdeczko
2024-10-03 12:23 ` Raag Jadav
2024-10-08 15:02 ` Raag Jadav
2024-10-10 13:02 ` Lucas De Marchi
2024-10-11 8:47 ` Raag Jadav
2024-10-17 2:47 ` Raag Jadav
2024-10-17 7:59 ` Christian König
2024-10-17 16:43 ` Rodrigo Vivi
2024-10-18 10:58 ` Christian König
2024-10-18 12:46 ` Raag Jadav
2024-10-18 12:54 ` Christian König
2024-10-18 14:09 ` Raag Jadav
2024-10-17 19:16 ` André Almeida
2024-10-18 14:56 ` Rodrigo Vivi
2024-10-18 15:31 ` Alex Deucher
2024-10-18 17:56 ` André Almeida
2024-10-18 21:07 ` Alex Deucher
2024-10-24 17:48 ` Rodrigo Vivi
2024-10-19 19:08 ` Raag Jadav
2024-09-30 7:38 ` [PATCH v7 2/5] drm: Expose wedge recovery methods Raag Jadav
2024-09-30 13:01 ` Andy Shevchenko
2024-10-01 5:23 ` Raag Jadav
2024-09-30 7:38 ` Raag Jadav [this message]
2024-09-30 7:38 ` [PATCH v7 4/5] drm/xe: Use device wedged event Raag Jadav
2024-09-30 7:38 ` [PATCH v7 5/5] drm/i915: " Raag Jadav
2024-09-30 22:48 ` ✗ Fi.CI.CHECKPATCH: warning for Introduce DRM device wedged event (rev5) Patchwork
2024-09-30 22:48 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-09-30 22:58 ` ✓ Fi.CI.BAT: success " Patchwork
2024-10-01 9:54 ` ✗ Fi.CI.IGT: failure " Patchwork
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=20240930073845.347326-4-raag.jadav@intel.com \
--to=raag.jadav@intel.com \
--cc=airlied@gmail.com \
--cc=andi.shyti@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=anshuman.gupta@intel.com \
--cc=aravind.iddamsetty@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=francois.dugast@intel.com \
--cc=himal.prasad.ghimiray@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=lina@asahilina.net \
--cc=lucas.demarchi@intel.com \
--cc=matthew.d.roper@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tursulin@ursulin.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox