Re: DIF/DIX issue related to config CONFIG_SCSI_MQ_DEFAULT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux