On Wed, Nov 28, 2018 at 10:50:11AM +0800, chenxiang (M) wrote: > Hi Lei Ming, > > 在 2018/11/27 21:08, Ming Lei 写道: > > On Tue, Nov 27, 2018 at 05:55:45PM +0800, chenxiang (M) wrote: > > > Hi all, > > > > > > There is a issue which may be related to CONFIG_SCSI_MQ_DEFAULT: before we > > > developed DIF/DIX feature on kernel 4.18 (disable CONFIG_SCSI_MQ_DEFAULT > > > default), and > > > it works well. > > I guess you are testing hisi_sas_v3_hw, does 4.18 work with > > 'scsi_mod.use_blk_mq=Y'? If yes, you may run 'git bisect' to figure out > > which commit is the 1st bad one. > > Yes, i am testing hisi_sas_v3_hw, if 4.18 with 'scsi_mod.use_blk_mq=Y' , > there is still a issue, and > the log is as attached ; OK, looks not a regression. > > > > > > But when we switch to kernel 4.19-rc1 and 4.20-rc1, Call > > > trace as follow occurs when running fio and if disable config > > > CONFIG_SCSI_MQ_DEFAULT, > > > then it works well. Also if switch ioengine=libaio to ioengine=psync, it > > > seems also work well. Do you have any idea or encounter similar issue? > > I tested scsi-debug via 'dix=1 dif=1', looks everything is fine, are you > > using direct io or not? > Yes, i use direct io. > I also test scsi-debug on kernel 4.19, and there seems be some other issue, > and i am not sure > whethere there is something wrong my operation: > > root@(none)$ insmod scsi_debug.ko dif=1 dix=1 virtual_gb=120 > [ 319.255051] scsi_debug:scsi_debug_init: dif_storep 131072 bytes @ > 00000000ba5f1637 > [ 319.255051] scsi_debug:scsi_debug_init: dif_storep 131072 bytes @ > 00000000ba5f1637 > [ 319.270661] scsi_debug:sdebug_driver_probe: host protection DIF1 DIX1 > [ 319.270661] scsi_debug:sdebug_driver_probe: host protection DIF1 DIX1 > [ 319.283562] scsi host3: scsi_debug: version 0188 [20180128] > [ 319.283562] dev_size_mb=8, opts=0x0, submit_queues=1, statistics=0 > [ 319.283562] scsi host3: scsi_debug: version 0188 [20180128] > [ 319.283562] dev_size_mb=8, opts=0x0, submit_queues=1, statistics=0 > [ 319.307871] scsi 3:0:0:0: Direct-Access Linux scsi_debug 0188 > PQ: 0 ANSI: 7 > [ 319.307871] scsi 3:0:0:0: Direct-Access Linux scsi_debug 0188 > PQ: 0 ANSI: 7 > [ 319.324173] sd 3:0:0:0: Power-on or device reset occurred > [ 319.324173] sd 3:0:0:0: Power-on or device reset occurred > [ 319.324242] sd 3:0:0:0: Attached scsi generic sg0 type 0 > [ 319.324242] sd 3:0:0:0: Attached scsi generic sg0 type 0 > [ 319.343021] sd 3:0:0:0: [sda] Enabling DIF Type 1 protection > [ 319.343021] sd 3:0:0:0: [sda] Enabling DIF Type 1 protection > [ 319.356952] sd 3:0:0:0: [sda] 251658240 512-byte logical blocks: (129 > GB/120 GiB) > [ 319.356952] sd 3:0:0:0: [sda] 251658240 512-byte logical blocks: (129 > GB/120 GiB) > [ 319.375948] sd 3:0:0:0: [sda] Write Protect is off > [ 319.375948] sd 3:0:0:0: [sda] Write Protect is off > [ 319.393551] sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, > supports DPO and FUA > [ 319.393551] sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, > supports DPO and FUA > [ 319.467940] sd 3:0:0:0: [sda] Enabling DIX T10-DIF-TYPE1-CRC protection > [ 319.467940] sd 3:0:0:0: [sda] Enabling DIX T10-DIF-TYPE1-CRC protection > [ 319.481189] sd 3:0:0:0: [sda] DIF application tag size 2 > [ 319.481189] sd 3:0:0:0: [sda] DIF application tag size 2 > [ 319.527902] sd 3:0:0:0: [sda] Attached SCSI disk > [ 319.527902] sd 3:0:0:0: [sda] Attached SCSI disk > root@(none)$ > root@(none)$ > root@(none)$ > root@(none)$ > root@(none)$ fio --ioengine=libaio --bs=4k --rw=rw --filename=/dev/sd a > --size=10G --runtime=100 --direct=1 -numjobs=1 -iodepth=1 --time_based > --nam e=job > job: (g=0): rw=rw, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=1 > fio 2.0.5 > Starting 1 process > Jobs: 1 (f=1) > Jobs: 1 (f=1) > Jobs: 1 (f=1): [M] [4.0% done] [495K/520K /s] [121 /127 iops] [eta 01m:37s] > Jobs: 1 (f=1): [M] [5.0% done] [507K/507K /s] [124 /124 iops] [eta 01m:36s] > Jobs: 1 (f=1): [M] [5.9% done] [516K/499K /s] [126 /122 iops] [eta 01m:35s] > Jobs: 1 (f=1): [M] [6.9% done] [479K/536K /s] [117 /131 iops] [eta 01m:34s] > Jobs: 1 (f=1): [M] [7.9% done] [495K/520K /s] [121 /127 iops] [eta 01m:33s] > Jobs: 1 (f=1): [M] [8.9% done] [499K/516K /s] [122 /126 iops] [eta 01m:32s] > [ 353.298158] scsi_debug:dif_verify: REF check failed on sector 16456 > [ 353.298158] scsi_debug:dif_verify: REF check failed on sector 16456 That is the issue, I guess it is one ARM64 dependent issue. I will try to find a arm64 machine to debug it, hope I am lucky. Or you may try to investigate it and see why the REF check fails. thanks, Ming