[PATCH 04/11] block: remove the blk_integrity_profile structure

Martin K. Petersen martin.petersen at oracle.com
Mon Jun 10 05:00:39 PDT 2024


Christoph,

> Block layer integrity configuration is a bit complex right now, as it
> indirects through operation vectors for a simple two-dimensional
> configuration:
>
>  a) the checksum type of none, ip checksum, crc, crc64
>  b) the presence or absence of a reference tag
>
> Remove the integrity profile, and instead add a separate csum_type flag
> which replaces the existing ip-checksum field and a new flag that
> indicates the presence of the reference tag.
>
> This removes up to two layers of indirect calls, remove the need to
> offload the no-op verification of non-PI metadata to a workqueue and
> generally simplifies the code. The downside is that block/t10-pi.c now
> has to be built into the kernel when CONFIG_BLK_DEV_INTEGRITY is
> supported.  Given that both nvme and SCSI require t10-pi.ko, it is loaded
> for all usual configurations that enabled CONFIG_BLK_DEV_INTEGRITY
> already, though.

Glad to see the profiles go! Vestiges of a time where it looked like ATA
might have an entirely different format and NVMe did not exist yet.

I'll test when I get back home later today.

-- 
Martin K. Petersen	Oracle Linux Engineering



More information about the Linux-nvme mailing list