Re: [PATCH 05/17] nvme-fabrics: Allow user enabling metadata/T10-PI support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 4/23/2020 1:24 AM, James Smart wrote:
On 4/22/2020 3:07 PM, Max Gurtovoy wrote:

On 4/21/2020 6:17 PM, Christoph Hellwig wrote:
On Fri, Mar 27, 2020 at 08:15:33PM +0300, Max Gurtovoy wrote:
From: Israel Rukshin <israelr@xxxxxxxxxxxx>

Preparation for adding metadata (T10-PI) over fabric support. This will
allow end-to-end protection information passthrough and validation for
NVMe over Fabric.
So actually - for PCIe we enable PI by default.  Not sure why RDMA would
be any different?  If we have a switch to turn it off we probably want
it work similar (can't be the same due to the lack of connect) for PCIe
as well.

For PCI we use a format command to configure metadata. In fabrics we can choose doing it in the connect command and we can also choose to have "protected" controllers and "non-protected" controllers.

I don't think it's all or nothing case, and configuration using nvme-cli (or other tool) seems reasonable and flexible.

I think you need to change this to "some fabrics".

With FC, we don't do anything in connect. The transport passes attributes on what it can do for PI support, including: passing through metadata (no checks); checking of metadata (normal); generation/strip of metadata on the wire (meaning OS does not have to have a metadata buffer), and so on.  Enablement is just like pci - format the ns, then match up the attribute with the behavior. There is no such thing as protected and non-protected controllers.  There's either a ns that has metadata or not. If metadata and the attributes of the transport can't support it, the ns is inaccessible.

I understand why you are describing it as you are, but I'm a bit concerned about the creation of things that aren't comprehended in the standards at all right now (protected vs non-protected controllers). This affects how multipath configures as well.

it's a bit late for me now so I probably wrote non standard sentence above.

BUT what I meant to say is I would like to give the user an option to decide whether use E2E protection or not (of course a controller can control protected and non-protected namespaces :) )

AFAIK, there is no option to format a ns in NVMf (at least for RDMA there is only 1 lbaf exposed by the target) so i'm not sure how exactly this will work.

We are doing all or nothing approach in iSER for T10 and I prefer not to do the same mistake for NVMf as well.

When NVMe/FC will support metadata in Linux we'll be able to adjust the code and the pi_enable according to HBA cap or any other logic that will fit.


-- james





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux