On Mon, Feb 03, 2025 at 02:31:13PM -0500, Martin K. Petersen wrote: > > I never could come up with a good use of the app_tag for file systems, > > so not wasting space for that is actually a good thing. > > I wish we could just do 4 bytes of CRC32C + 4 bytes of ref tag. I think > that would be a reasonable compromise between space and utility. Agreed. > But we > can't do that because of the app tag escape. We're essentially wasting 2 > bytes per block to store a single bit flag. Well, what do we actually need the app tag escape for except for historical precedence? In NVMe the app tag escape is an option for deallocated blocks, but it's only one of the options, there other beeing a synthetic guard/ref tag with the expected value. > In general I think 4096+16 is a reasonable format going forward. With > either CRC32C or CRC64 plus full LBA as ref tag. That would also work fine. NVMe supports 4byte crc32c + 2 byte app tag + 12 byte guard tag / storage tag and 8-byte crc64 + 2 byte app tag + 6 byte guard / storage tag, although Linux only supports the latter so far.