Re: [PATCH v4 0/5] block: use integrity interval instead of sector as seed
Caleb Sander Mateos <[email protected]> Mon, 13 Jul 2026 08:50:39 -0700
| Newsgroups | org.kernel.vger.target-devel,org.infradead.lists.linux-nvme,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi |
|---|---|
| Message-ID | <CADUfDZoGyu-EWxT5tN41K24oFwu8p4mmxFRsHcDpLBoAY6Y0Yw@mail.gmail.com> |
On Sun, Jul 12, 2026 at 4:09=E2=80=AFPM Martin K. Petersen <[email protected]> wrote: > > > Caleb, > > > The block integrity layer currently sets the integrity seed (initial > > reference tag) in units of 512-byte sectors. > > ... because that is the fundamental addressing unit in the block layer. > > > However, Type 1 and Type 2 ref tags are actually in units of integrity > > intervals. > > They are not in units of anything until they reach their final > protection envelope. > > > On devices with integrity interval size > 512 bytes, ref tags are > > seeded incorrectly. > > The bip seed is whatever the caller decides it should be. The integrity > interval size is irrelevant. As is the destination LBA. > > > But REQ_OP_ZONE_APPEND operations don't have their ref tags remapped, > > so the ref tags using units of sectors will be stored to the device. > > Then there's a problem with how we handle REQ_OP_ZONE_APPEND. For NVMe, > the PIREMAP flag should address this issue by remapping the written ref > tags based on their ultimate destination LBA. Yes, it looks like PIREMAP should allow this to work. But Christoph reported that ref tags weren't working correctly with REQ_OP_ZONE_APPEND: https://lore.kernel.org/linux-block/[email protected]/T/#= u Christoph, were you testing with an NVMe ZNS device? Thanks, Caleb