Alexey, > t10_pi_generate / t10_pi_type1_prepare have just a increment by “1” for > the integrity internal which is 4k in my case, > so any bio_integrity_advance call will be move an iterator outside of > generated sequence and t10_pi_type1_prepare can’t be found a good virtual > sector for the mapping. > Changing an increment by “1” to be related to the real integrity size > solve a problem completely. By definition the T10 PI reference tag is incremented by one per interval (typically the logical block size). If you implement it by a different value than one then it is no longer valid protection information. Seems like the splitting logic is broken somehow although I haven't seen any failures with 4K on SCSI. What does your storage stack look like? -- Martin K. Petersen Oracle Linux Engineering