On 01/02/2019 16:20, Sebastian Andrzej Siewior wrote:
Hi, I tried to use T10DIF on a SAS disk(s) behind a LSI SAS3008 controller. So I enabled type 1 via sg_format --format --fmtpinfo=2 /dev/sdX on each disk, waited a few hours. After the operation completed the disks reported that T10DIF is enabled. I was able to read/write from/to the disk(s). This was on a v4.14 kernel. Then I upgraded to v4.19 and things started to fall apart. I was able to read/write the first LBA but everything after that failed: |[ .343777] sd 0:0:0:0: [sda] tag#2788 FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_SENSE |[ .345709] sd 0:0:0:0: [sda] tag#2788 Sense Key : Illegal Request [current] |[ .347481] sd 0:0:0:0: [sda] tag#2788 Add. Sense: Logical block reference tag check failed |[ .349244] sd 0:0:0:0: [sda] tag#2788 CDB: Read(10) 28 20 00 00 00 04 00 00 08 00 |[ .352766] mpt3sas_cm0: log_info(0x3112043b): originator(PL), code(0x12), sub_code(0x043b) |[ .354548] sd 0:0:0:0: [sda] tag#2789 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE |[ .356328] sd 0:0:0:0: [sda] tag#2789 Sense Key : Aborted Command [current] |[ .358105] sd 0:0:0:0: [sda] tag#2789 Add. Sense: Logical block reference tag check failed |[ .359868] sd 0:0:0:0: [sda] tag#2789 CDB: Write(10) 2a 20 00 00 00 01 00 00 01 00 | |[ .508308] sd 0:0:0:0: [sda] tag#1180 FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_SENSE |[ .508323] sd 0:0:0:0: [sda] tag#1180 Sense Key : Illegal Request [current] |[ .508326] sd 0:0:0:0: [sda] tag#1180 Add. Sense: Logical block reference tag check failed |[ .508328] sd 0:0:0:0: [sda] tag#1180 CDB: Read(10) 28 20 00 00 00 02 00 00 02 00 |[ .508337] mpt3sas_cm0: log_info(0x3112043b): originator(PL), code(0x12), sub_code(0x043b) |[ .534943] sd 0:0:0:0: [sda] tag#547 FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_SENSE |[ .534949] sd 0:0:0:0: [sda] tag#547 Sense Key : Illegal Request [current] |[ .534954] sd 0:0:0:0: [sda] tag#547 Add. Sense: Logical block reference tag check failed |[ .534958] sd 0:0:0:0: [sda] tag#547 CDB: Read(10) 28 20 00 00 00 01 00 00 01 00 |[ .534983] mpt3sas_cm0: log_info(0x3112043b): originator(PL), code(0x12), sub_code(0x043b) |[ .535876] sd 0:0:0:0: [sda] tag#547 FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_SENSE |[ .535879] sd 0:0:0:0: [sda] tag#547 Sense Key : Illegal Request [current] |[ .535882] sd 0:0:0:0: [sda] tag#547 Add. Sense: Logical block reference tag check failed |[ .535884] sd 0:0:0:0: [sda] tag#547 CDB: Read(10) 28 20 00 00 00 03 00 00 01 00 |[ .535899] mpt3sas_cm0: log_info(0x3112043b): originator(PL), code(0x12), sub_code(0x043b) I went back to v4.14 and the errors disappeared. In v4.19 I was able to tell mpt3sas to disable T10DIF [0] and then I could read from the disk again. Does anyone have an idea what happened between v4.14 and v4.19 that would explain this?
Possibly missing this (not sure which 4.19 you mean): https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/t10-pi.h?h=v4.19.13&id=690699b271858d45587c868c5166cb6d495a953f
Since this runs productive I went back and disabled T10DIF. [0] mpt3sas.prot_mask=2 Sebastian .