----- Original Message ----- > From: "Eyal Ben David" <bdeyal@xxxxxxxxx> > To: "Johannes Thumshirn" <jthumshirn@xxxxxxx> > Cc: "Ewan D. Milne" <emilne@xxxxxxxxxx>, "Laurence Oberman" <loberman@xxxxxxxxxx>, dgilbert@xxxxxxxxxxxx, > linux-scsi@xxxxxxxxxxxxxxx > Sent: Friday, November 25, 2016 7:36:34 AM > Subject: Re: SG does not ignore dxferp (direct io + mmap) > > On Fri, Nov 25, 2016 at 1:53 PM, Johannes Thumshirn <jthumshirn@xxxxxxx> > wrote: > > On Fri, Nov 25, 2016 at 01:20:34PM +0200, Eyal Ben David wrote: > >> Note that sg_mmap_read does not parse the SCSI sense, so the script > >> might fail for other reasons (some SCSI error) and think its a zero > >> byte corruption. > > > > But SCSI generic checks for errors and returns -EINVAL on CHECK_CONDITION > > or > > DRIVER_SENSE (and sets SG_INFO_CHECK in hdr.info). > > > Ah OK. We use async write/read instead of ioctl and forgot that ioctl > checks the read. > > > Anyways, can you test the patch Ewan found on one of your kernel's that are > > known to fail? > > All the examples I gave before were on physical hosts and storage at a > testing lab. > That would be difficult to do. Sorry. > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > I applied just the patch myself and Ewan isolated to the 4.7.9 kernel and the issue is resolved for me. I have 100000 loops of the test with no issue. I repeated the test flushing cache each time as well to make sure for i in `seq 1 100000`; do ./sg_mmap_read -d /dev/sg1 -l 0 -m -b | hexdump | grep 6300; done for i in `seq 1 100000`; do ./sg_mmap_read -d /dev/sg1 -l 0 -m -b | hexdump | grep 6300; echo 3 > /proc/sys/vm/drop_caches;done Johannes, you are reproducing another race in your test I think. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html