Date: Sun, 09 Sep 2012 18:54:25 +0300 From: Alexander Motin <mav@FreeBSD.org> To: kirk@ba23.org Cc: freebsd-stable@freebsd.org Subject: Re: FreeBSD 9.1 RC1 and CAM issues with old SCSI drive Message-ID: <504CBBB1.20905@FreeBSD.org> In-Reply-To: <CAN1LDCGW6ebevq2WTKMy%2BafRLH%2BSRNeV8FcifP=p%2B9161udU5w@mail.gmail.com> References: <504B2C35.3030800@FreeBSD.org> <CAN1LDCGW6ebevq2WTKMy%2BafRLH%2BSRNeV8FcifP=p%2B9161udU5w@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 09.09.2012 16:25, kirk russell wrote: > On Sat, Sep 8, 2012 at 12:29 PM, Alexander Motin <mav@freebsd.org> wrote: >> Hi. >> >> It seems like both of your problems have the same cause: device report wrong >> size of INQUIRY data, that causes failure on attempt to fetch it. With >> FreeBSD 9.0 it caused domain validation failures and so reduced transfer >> rate, on 9.1 it also causes detection failure. I am not sure why detection >> worked on 9.0, it needs some deeper code comparison, but I think it is >> mostly device problem. >> >> Could you send me output of such commands from FreeBSD 9.0: >> camcontrol cmd da0 -vEc "12 00 00 00 24 00" -i 36 - | hd >> camcontrol cmd da0 -vEc "12 00 00 00 fe 00" -i 254 - | hd >> camcontrol cmd da0 -vEc "12 00 00 01 00 00" -i 256 - | hd >> >> -- >> Alexander Motin > > This is running 9.0-RELEASE. > > # camcontrol cmd da0 -vEc "12 00 00 00 24 00" -i 36 - | hd > 00000000 00 00 02 02 fa 00 00 3e 43 4f 4d 50 41 51 50 43 |.......>COMPAQPC| > 00000010 57 44 45 39 31 30 30 57 20 20 20 20 20 20 20 20 |WDE9100W | > 00000020 31 2e 30 31 |1.01| > 00000024 > # camcontrol cmd da0 -vEc "12 00 00 00 fe 00" -i 254 - | hd > 00000000 00 00 02 02 fa 00 00 3e 43 4f 4d 50 41 51 50 43 |.......>COMPAQPC| > 00000010 57 44 45 39 31 30 30 57 20 20 20 20 20 20 20 20 |WDE9100W | > 00000020 31 2e 30 31 32 33 30 31 57 53 37 30 32 30 33 37 |1.012301WS702037| > 00000030 32 34 39 33 00 00 00 00 20 20 20 20 20 20 20 20 |2493.... | > 00000040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | > * > 00000060 57 44 45 39 31 30 30 2d 36 30 30 35 44 30 20 20 |WDE9100-6005D0 | > 00000070 34 30 36 31 30 30 31 31 39 31 30 30 32 43 30 20 |4061001191002C0 | > 00000080 32 34 30 38 00 00 00 00 00 00 00 00 00 00 00 00 |2408............| > 00000090 00 00 00 00 4e 32 30 35 30 30 39 39 30 32 35 35 |....N20500990255| > 000000a0 33 20 20 20 50 20 30 30 00 00 00 00 00 00 42 41 |3 P 00......BA| > 000000b0 43 43 42 45 4b 43 31 39 39 38 30 38 32 38 57 53 |CCBEKC19980828WS| > 000000c0 36 30 44 20 04 03 00 04 02 01 00 00 00 00 00 00 |60D ............| > 000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| > * > 000000f0 > # camcontrol cmd da0 -vEc "12 00 00 01 00 00" -i 256 - | hd > (pass1:ahc0:0:0:0): INQUIRY. CDB: 12 0 0 1 0 0 > (pass1:ahc0:0:0:0): CAM status: SCSI Status Error > (pass1:ahc0:0:0:0): SCSI status: Check Condition > (pass1:ahc0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB) > (pass1:ahc0:0:0:0): Command Specific Info: 0xffffffff > (pass1:ahc0:0:0:0): Command byte 3 is invalid > camcontrol: error sending command > (pass1:ahc0:0:0:0): INQUIRY. CDB: 12 0 0 1 0 0 > (pass1:ahc0:0:0:0): CAM status: SCSI Status Error > (pass1:ahc0:0:0:0): SCSI status: Check Condition > (pass1:ahc0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB) > (pass1:ahc0:0:0:0): Command Specific Info: 0xffffffff > (pass1:ahc0:0:0:0): Command byte 3 is invalid It seems that problem can be in our SCSI code that rounds inquiry data size up to even. Please try to comment out line inquiry_len = roundup2(inquiry_len, 2); in sys/cam/scsi/scsi_xpt.c and rebuild the kernel. It should probably fix both device detection and transfer speed. -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?504CBBB1.20905>