Re: [PATCH v6 7/7] Documentation: Add sysfs documentation for PSCRR reboot reason tracking

From: Matti Vaittinen
Date: Mon Mar 17 2025 - 04:46:14 EST


On 14/03/2025 16:10, Oleksij Rempel wrote:
On Fri, Mar 14, 2025 at 03:38:55PM +0200, Matti Vaittinen wrote:
On 14/03/2025 13:36, Oleksij Rempel wrote:
Add documentation for the Power State Change Reason Recorder (PSCRR)
sysfs interface, which allows tracking of system shutdown and reboot
reasons. The documentation provides details on available sysfs entries
under `/sys/kernel/pscrr/`, explaining their functionality, example usage,
and how they interact with different backend storage options (e.g., NVMEM).

Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
---
.../ABI/testing/sysfs-kernel-reboot-pscrr | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-kernel-reboot-pscrr

diff --git a/Documentation/ABI/testing/sysfs-kernel-reboot-pscrr b/Documentation/ABI/testing/sysfs-kernel-reboot-pscrr
new file mode 100644
index 000000000000..7cc643f89675
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-kernel-reboot-pscrr
@@ -0,0 +1,46 @@
+What: /sys/kernel/pscrr/reason
+Date: April 2025
+KernelVersion: 6.15
+Contact: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
+Description:
+ This file provides access to the last recorded power state
+ change reason. The storage backend is configurable and, if
+ supported, the reason may be stored persistently in an
+ NVMEM cell or another backend.
+
+ Reading this file returns an integer representing the last
+ recorded shutdown or reboot cause.
+
+ Writing an integer value to this file sets the reason to be
+ stored and recorded for system analysis.
+
+ Example usage (values are for illustration and may not reflect
+ actual reasons used in a given system):
+ Read:
+ $ cat /sys/kernel/pscrr/reason
+ 3 # (Example: Power loss event, may differ per system)
+
+ Write:
+ $ echo 5 > /sys/kernel/pscrr/reason
+ # Sets the reason to 5 (Example: User-triggered reboot,
+ # this may not be a real value in your system)
+
+ Values are defined in:
+ - `include/linux/reboot.h` (enum psc_reason)

Is it possible to provide the reason (also) as string?

I believe we should fix the meaning of the numbers so the ABI is not
changing for the users. Hence we could as well document the meaning of the
values(?) If I read the suggestion right, we will in any case have
predefined set of reasons in the kernel side.

Or, am I missing something?

Yes, it is correct, the values should be fixed for user space. Should
they be documented in this documentation too?

I believe it could be helpful for both the user-space users and potential pscrr provider driver writers. It could also set things to stone.

But, I don't have much experience on the documentation like this so please treat this as a suggestion - but do as you see fits best.

Yours,
-- Matti