Great writeup on the block integrity stuff. Just a few comments:
The SCSI Data Integrity Field specification is fully baked and ratified and products are beginning to appear on the market. The T13 committee that governs SATA is currently reviewing a proposal called "External Path Protection" that is essentially SCSI DIF adapted to the ATA protocol. IOW, SATA support is work in progress but the block layer infrastructure has been designed to accomodate it.
Short of using 520 byte sectors directly (and mangling the VM) there is no "standard" for DMA protection information to and from memory. HBA interfaces are outside the scope of the T10 SCSI committee.
When we started this project it became obvious that separate scatterlists for data and protection information were an absolute must. Without them it would be far too intrusive to make Linux support end-to-end data integrity. So we engaged with HBA vendors to make it so. Docs available here: http://oss.oracle.com/projects/data-integrity/documentation/.
With regards to making filesystems integrity-aware and passing protection information to and from userland: Yep, that's next on the list. I'm hoping to be able to yak about this at the Plumbers Conference.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds