[PATCH 3/4] NVMe: End-to-end data protection
David.Darrington at hgst.com
David.Darrington at hgst.com
Tue Mar 12 11:12:26 EDT 2013
I first noticed the kernels CONFIG_BLK_DEV_INTEGRITY option when I was
trying to understand end-to-end protection and meta-data. When I saw the
'struct bio_integrity_payload *' in the definition of the strucure, I
figured that hte block layer (or perhaps above) could setup a
bio_integrity_payload. In which case, the bio's received by the driver
would already include bips and woudl simply write the meta-data to the
drive.
>From Documentation/block/data-integrity.txt in the kernel tree:
"...
The current implementation allows the block layer to automatically
generate the protection information for any I/O. Eventually the intent is
to move the integrity metadata calculation to userspace for user data.
Metadata and other I/O that originates within the kernel will still use
the automatic generation interface.
...
"
"Linux-nvme" <linux-nvme-bounces at lists.infradead.org> wrote on 03/11/2013
05:32:56 PM:
> On Mon, 11 Mar 2013, David.Darrington at hgst.com wrote:
>
> > Is this correct:
> >> +/*
> >> + * Valid formats must have either no meta-data, or meta-data equal
to
> > the DIF
> >> + * size and formatted for protection information. The driver has no
use
> > for
> >> + * meta-data for any other purpose.
> >> + */
> >
> > This patch fails nvme_alloc_ns() if there is meta data, but data
> > protection is not enabled.
> >
> > Are there valid use cases where the driver passes through the
meta-data to
> > and from the controller, without generating or verifying? Is it
possible
> > for applications to provided there own meta-data?
>
> Other than the integrity extensions, I don't think there is anything in
> a bio request that a block driver can use to set the command meta-data
> pointer, whether an application wants to provide it or otherwise. Please
> let me know if I've missed something, though.
>
> _______________________________________________
> Linux-nvme mailing list
> Linux-nvme at lists.infradead.org
> http://merlin.infradead.org/mailman/listinfo/linux-nvme
More information about the Linux-nvme
mailing list