The original definitions for these fields come from JESD84-B50, which is what eMMC storage uses. It has been a while, but I recall UFS doing something pretty similar. Systems that don't have a well defined notion of durability would just not expose the flag (e.g. a spinning disk), and going for what eMMC/UFS expose already would make implementations fairly seamless for a lot of common embedded scenarios. Of course, if you see room for improvement to the spec, I'd be very interested in hearing your thoughts Thanks, - Enrico Thanks, - Enrico On Mon, Dec 5, 2022 at 1:29 PM Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > > On Mon, Dec 05, 2022 at 11:53:51AM -0700, Jens Axboe wrote: > > On 12/5/22 11:36 AM, Alvaro Karsz wrote: > > > Hi, > > > > > >> Is this based on some spec? Because it looks pretty odd to me. There > > >> can be a pretty wide range of two/three/etc level cells with wildly > > >> different ranges of durability. And there's really not a lot of slc > > >> for generic devices these days, if any. > > > > > > Yes, this is based on the virtio spec > > > https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.html > > > section 5.2.6 > > > > And where did this come from? > > > Here's the commit log from the spec: > In many embedded systems, virtio-blk implementations are > backed by eMMC or UFS storage devices, which are subject to > predictable and measurable wear over time due to repeated write > cycles. > > For such systems, it can be important to be able to track > accurately the amount of wear imposed on the storage over > time and surface it to applications. In a native deployments > this is generally handled by the physical block device driver > but no such provision is made in virtio-blk to expose these > metrics for devices where it makes sense to do so. > > This patch adds support to virtio-blk for lifetime and wear > metrics to be exposed to the guest when a deployment of > virtio-blk is done over compatible eMMC or UFS storage. > > Signed-off-by: Enrico Granata <egranata@xxxxxxxxxx> > > Cc Enrico Granata as well. > > > > -- > > Jens Axboe > > >