On Feb 16 15:08, Keith Busch wrote: > On Mon, Feb 15, 2021 at 12:02:36AM +0100, Klaus Jensen wrote: > > From: Klaus Jensen > > > > Add support for namespaces formatted with protection information. The > > type of end-to-end data protection (i.e. Type 1, Type 2 or Type 3) is > > selected with the `pi` nvme-ns device parameter. If the number of > > metadata bytes is larger than 8, the `pil` nvme-ns device parameter may > > be used to control the location of the 8-byte DIF tuple. The default > > `pil` value of '0', causes the DIF tuple to be transferred as the last > > 8 bytes of the metadata. Set to 1 to store this in the first eight bytes > > instead. > > > This file is getting quite large. I think this feature can have the bulk > of the implementation in a separate file. For ex, nvme-dif.c. Yes, makes sense to split it off. I think moving[1] the device to hw/nvme first would be good. > But like the linux implementation this is based on, it isn't really > nvme specific, so even better if t10 dif is implemented in a generic > location with an API for nvme and others. That is true, but in the absence of any interest from other subsystems to implement this, I think we can keep it local for now? I keep a pretty close eye on qemu-block, so if other subsystems should care about this, I promise that I will pitch in :) [1]: <20210209110826.585987-1-its@irrelevant.dk>