Date: Tue, 3 Mar 2015 15:50:41 +0800 From: fengyd <fengyd81@gmail.com> To: "Kenneth D. Merry" <ken@freebsd.org> Cc: freebsd-scsi@freebsd.org Subject: Re: What does the error code 82 mean? Message-ID: <CACnvu8big5_XuMCgcEtLA=4b625os_86ROcsAhJPOQ24TfUUDw@mail.gmail.com> In-Reply-To: <20150303065052.GA98687@mithlond.kdm.org> References: <CACnvu8aooXfqV3sG_VbispuZQRVs=g3zVU=GUrqB1QN5g2x6Mg@mail.gmail.com> <CACnvu8YVapcG50oBFSjd1731N-8G7zdybjN2CN6mpgzdrXrifQ@mail.gmail.com> <CACnvu8aNsL5e1=Ygu2wXP=-t1Z-LSWp1GQFrPwruB9PHBkNVXw@mail.gmail.com> <20150303065052.GA98687@mithlond.kdm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Thanks very much for your reply. -How are you sending the INQUIRY command? Yes. -Are you sending it via the pass(4) driver? Yes -How many bytes are you asking for in the CDB? 64 -How many bytes are you setting in the dxfer_len field in the CCB? 64, but it seems the device wants to transfer 128 bytes. -What kind of device are you talking to? Some kernel log: da3 at sym1 bus 0 target 0 lun 0 da3: <FUJITSU MBA3073NP 4702> Fixed Direct Access SCSI-3 device da3: 40.000MB/s transfers (20.000MHz, offset 31, 16bit), Tagged Queueing Enabled da3: 70136MB (143638992 512 byte sectors: 255H 63S/T 8941C) [image: Inline image 2] The brief connections as above: UNIT0 can access DISK0 and DISK1 by IOC0. UNIT1 can access DISK0 and DISK1 by IOC1. The problem happens when UNIT0 sends XPT_RESET_DEV to reset one disk, UNIT1 sends INQUIRY to get the basic information from the target, but fails to get the correct information. And I added some log. The right information got from device: 00 00 03 12 5B 00 01 3A 46 55 4A 49 54 53 55 20 4D 42 41 33 30 37 33 4E 50 20 20 20 20 20 20 20 34 37 30 32 42 42 53 32 50 41 41 30 31 31 46 34 00 00 00 00 00 00 00 00 0F 00 00 40 0B 54 01 3C The wrong information got from device: 00 00 00 00 03 00 12 00 5B 00 00 00 01 00 3A 00 46 00 55 00 4A 00 49 00 54 00 53 00 55 00 20 00 4D 00 42 00 41 00 33 00 30 00 37 00 33 00 4E 00 50 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 Compared to the right log, it seems one extra byte *00* is added after every byte. Thanks for your help. Br. Yafeng On Tue, Mar 3, 2015 at 2:50 PM, Kenneth D. Merry <ken@freebsd.org> wrote: > > An overrun is exactly what the comment below indicates. It is when the > target sends back more data than you asked for. You will generally see it > on commands that receive data from a target. > > How are you sending the INQUIRY command? Are you sending it via the > pass(4) driver? How many bytes are you asking for in the CDB? How many > bytes are you setting in the dxfer_len field in the CCB? > > What kind of device are you talking to? Obviously, you're using the sym(4) > driver, so I'm guessing this is a parallel SCSI device (unless there is a > virtualization stack that emulates the sym(4) hardware). > > Ken > > On Mon, Mar 02, 2015 at 15:49:57 +0800, fengyd wrote: > > Hi, > > > > I found the related code in the function sym_int_sir: > > /* > > * The device wants us to tranfer more data than > > * expected or in the wrong direction. > > * The number of extra bytes is in scratcha. > > * It is a data overrun condition. > > */ > > case *SIR_DATA_OVERRUN*: > > if (cp) { > > OUTONB (HF_PRT, HF_EXT_ERR); > > * cp->xerr_status |= XE_EXTRA_DATA;* > > cp->extra_bytes += INL (nc_scratcha); > > } > > goto out; > > > > I'm not familiar with SCSI. > > What does DATA_OVERRUN actually mean? > > How can it be triggered? > > Could you give more details about it? > > > > Thanks for your help. > > > > Br. > > Yafeng > > > > > > > > On Sat, Feb 28, 2015 at 4:50 PM, fengyd <fengyd81@gmail.com> wrote: > > > > > Hi, > > > > > > It seems the error code 82 & 3F is 0x12. > > > And the definition of the error code in the file cam.h: > > > CAM_AUTOSENSE_FAIL = 0x10,/* Autosense: request sense cmd fail > */ > > > CAM_NO_HBA, /* No HBA Detected error */ > > > CAM_DATA_RUN_ERR, /* Data Overrun error */ > > > > > > So, it means data overrun error? > > > > > > Thanks. > > > > > > Br. > > > Yafeng > > > > > > On Sat, Feb 28, 2015 at 4:32 PM, fengyd <fengyd81@gmail.com> wrote: > > > > > >> Hi, > > >> > > >> INQUIRY command is sent to the target, but error code 82 is returned. > > >> I added some log in the driver: > > >> SIR_COMPLETE_ERROR > > >> (pass0:sym0:0:0:0): sym_complete_error status = 18 > > >> (pass0:sym0:0:0:0): status = 82 > > >> > > >> Do you know what does the error code 82 mean? > > >> > > >> Thanks in advance. > > >> > > >> Br. > > >> Yafeng > > >> > > > > > > > > _______________________________________________ > > freebsd-scsi@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-scsi > > To unsubscribe, send any mail to "freebsd-scsi-unsubscribe@freebsd.org" > > -- > Kenneth Merry > ken@FreeBSD.ORG >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACnvu8big5_XuMCgcEtLA=4b625os_86ROcsAhJPOQ24TfUUDw>