On 2/10/25 10:58 PM, Avri Altman wrote:
The UFS4.1 standard, released on January 8, 2025, added a new exception event: HEALTH_CRITICAL, which notifies the host of a device's critical health condition. This notification implies that the device is approaching the end of its lifetime based on the amount of performed program/erase cycles. Once an EOL (End-of-Life) exception event is received, we increment a designated member, which is exposed via a `sysfs` entry. This new entry, will report the number of times a critical health event has been reported by a UFS device. To handle this new `sysfs` entry, userspace applications can use `select()`, `poll()`, or `epoll()` to monitor changes in the `critical_health` attribute. The kernel will call `sysfs_notify()` to signal changes, allowing the userspace application to detect and respond to these changes efficiently. The host can gain further insight into the specific issue by reading one of the following attributes: bPreEOLInfo, bDeviceLifeTimeEstA, bDeviceLifeTimeEstB, bWriteBoosterBufferLifeTimeEst, and bRPMBLifeTimeEst. All those are available for reading via the driver's sysfs entries or through an applicable utility. It is up to user-space to read these attributes if needed.
Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>