On Fri, 12-Jul-2013 at 00:02:11 +0200, Kenneth D. Merry wrote: > On Thu, Jul 11, 2013 at 14:53:32 -0600, Kenneth D. Merry wrote: > > On Wed, Jul 10, 2013 at 20:58:33 +0200, Andre Albsmeier wrote: > > > On Wed, 10-Jul-2013 at 20:49:15 +0200, Kenneth D. Merry wrote: > > > > On Wed, Jul 03, 2013 at 07:43:49 +0200, Andre Albsmeier wrote: > > > > > On Wed, 03-Jul-2013 at 07:22:36 +0200, Kenneth D. Merry wrote: > > > > > > On Tue, Jul 02, 2013 at 07:53:33 +0200, Andre Albsmeier wrote: > > > > > > > On Tue, 25-Jun-2013 at 23:43:50 +0200, Kenneth D. Merry wrote: > > > > > > > > Author: ken > > > > > > > > Date: Tue Jun 25 21:43:49 2013 > > > > > > > > New Revision: 252214 > > > > > > > > URL: http://svnweb.freebsd.org/changeset/base/252214 > > > > > > > > > > > > > > Hi Ken, > > > > > > > > > > > > > > > Log: > > > > > > > > MFC: 249658, 249701 > > > > > > > > > > > > > > > > Update chio(1) and ch(4) to support reporting element > > > > > > > > designators. > > > > > > > > > > > > > > > > This allows mapping a tape drive in a changer (as reported by > > > > > > > > 'chio status') to a sa(4) driver instance by comparing the > > > > > > > > serial numbers. > > > > > > > > > > > > > > > > The designators can be ASCII (which is printed out directly), > > > > > > > > binary > > > > > > > > (which is printed in hex format) or UTF-8, which is printed > > > > > > > > in either > > > > > > > > native UTF-8 format if the terminal can support it, or in %XX > > > > > > > > notation > > > > > > > > for non-ASCII characters. Thanks to Hiroki Sato <hrs@> for > > > > > > > > the > > > > > > > > explanation and example UTF-8 printing code. > > > > > > > > > > > > > > > > chio.h: Modify the changer_element_status > > > > > > > > structure to add new > > > > > > > > fields and definitions from the SMC3r16 spec. > > > > > > > > > > > > > > > > Rename the original CHIOGSTATUS ioctl to > > > > > > > > OCHIOGTATUS and > > > > > > > > define a new CHIOGSTATUS ioctl. > > > > > > > > > > > > > > > > Clean up some tab/space issues. > > > > > > > > > > > > > > > > chio.c: For the 'status' subcommand, print the > > > > > > > > designator field > > > > > > > > if it is supplied by a device. > > > > > > > > > > > > > > > > scsi_ch.h: Add new flags for DVCID and CURDATA to the READ > > > > > > > > ELEMENT STATUS command structure. > > > > > > > > > > > > > > > > Add a read_element_status_device_id structure > > > > > > > > for the data fields in the new standard. Add new > > > > > > > > unions, dt_or_obsolete and voltage_devid, to > > > > > > > > hold > > > > > > > > and address data from either SCSI-2 or newer > > > > > > > > devices. > > > > > > > > > > > > > > > > scsi_ch.c: Implement support for fetching device IDs with > > > > > > > > READ > > > > > > > > ELEMENT STATUS data. > > > > > > > > > > > > > > > > Add new arguments to scsi_read_element_status() > > > > > > > > to > > > > > > > > allow the user to request the DVCID and CURDATA > > > > > > > > bits. > > > > > > > > > > > > > > This broke "chio status" when talking to my QUALSTAR TLS-8211 > > > > > > > library: > > > > > > > > > > > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): READ > > > > > > > ELEMENT STATUS. CDB: b8 10 fd e8 00 01 03 00 04 00 00 00 > > > > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): CAM > > > > > > > status: SCSI Status Error > > > > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): SCSI > > > > > > > status: Check Condition > > > > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): SCSI > > > > > > > sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB) > > > > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): > > > > > > > Command byte 6 is invalid > > > > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): > > > > > > > Error 22, Unretryable error > > > > > > > > > > > > > > scsi_cmd->flags (Byte 6) must be zero for this library so I had > > > > > > > to use > > > > > > > this workaround to make it work again until a better solution is > > > > > > > available: > > > > > > > > > > > > > > --- sys/cam/scsi/scsi_ch.c.ORI 2013-06-26 13:38:54.000000000 > > > > > > > +0200 > > > > > > > +++ sys/cam/scsi/scsi_ch.c 2013-07-02 07:42:24.000000000 > > > > > > > +0200 > > > > > > > @@ -1245,8 +1245,8 @@ > > > > > > > /* tag_action */ MSG_SIMPLE_Q_TAG, > > > > > > > /* voltag */ want_voltags, > > > > > > > /* sea */ softc->sc_firsts[chet], > > > > > > > - /* dvcid */ 1, > > > > > > > - /* curdata */ 1, > > > > > > > + /* dvcid */ 0, > > > > > > > + /* curdata */ 0, > > > > > > > /* count */ 1, > > > > > > > /* data_ptr */ data, > > > > > > > /* dxfer_len */ 1024, > > > > > > > @@ -1284,8 +1284,8 @@ > > > > > > > /* voltag */ want_voltags, > > > > > > > /* sea */ softc->sc_firsts[chet] > > > > > > > + cesr->cesr_element_base, > > > > > > > - /* dvcid */ 1, > > > > > > > - /* curdata */ 1, > > > > > > > + /* dvcid */ 0, > > > > > > > + /* curdata */ 0, > > > > > > > /* count */ cesr->cesr_element_count, > > > > > > > /* data_ptr */ data, > > > > > > > /* dxfer_len */ size, > > > > > > > > > > > > > > -Andre > > > > > > > > > > > > Oops, sorry. > > > > > > > > > > > > We need to check the SCSI version to see whether to set those bits, > > > > > > and > > > > > > also fall back in case it doesn't work. > > > > > > > > > > > > I am on vacation and have very spotty net access. I can't do > > > > > > anything > > > > > > about it until I get back next week. > > > > > > > > > > > > Justin and Alan (CCed) can work on the fix, though. > > > > > > > > > > Take your time, for me it's working right now > > > > > with the above patch... > > > > > > > > Okay, I'm back and can take a look at this. > > > > > > Welcome back ;-) > > > > > > > > > > > Can you send me: > > > > > > Sure, I am happy to help. > > > > > > > > > > > camcontrol inquiry ch0 -v > > > > > > pass17: <QUALSTAR TLS-8211 227d> Removable Changer SCSI-2 device > > > pass17: Serial Number 0021009613 > > > pass17: 3.300MB/s transfers > > > > > > > camcontrol cmd ch0 -v -c "12 0 0 0 ff 0" -i 255 "s58 i2 i2 i2 i2 i2 i2 > > > > i2 i2" > > > > > > 0 0 0 0 0 0 0 0 > > > > Okay, that was helpful, thanks! > > > > > > > > > > I want to see what SCSI version this changer reports. The second > > > > command > > > > will print out the SCSI version descriptors, if any, that the changer > > > > reports. > > > > > > In case you need more info just drop me a note. > > > > > > Thanks for looking into this. > > > > Can you try the attached patch, and see how it works for you? > > > > It defaults to not setting those bits for changers that claim to be SCSI-2 > > or below. And if a SCSI-3 or higher changer returns an Illegal Request > > type error, it will retry with the bits cleared to see whether that works. > > > > I also bumped the read element status timeout after some testing with a > > Spectra T-380. > > > > The patch is against head, but stable/9 shouldn't be much different. > > Oops, here is the patch.
Tried "chio status" and "chio move", both work! dmesg now added a quirk entry for ch0: ch0: <QUALSTAR TLS-8211 227d> Removable Changer SCSI-2 device ch0: 3.300MB/s transfers ch0: 11 slots, 1 drive, 1 picker, 1 portal +ch0: quirks=0x2<NO_DVCID> sa0 at ahd3 bus 0 scbus4 target 0 lun 0 sa0: <IBM ULTRIUM-TD4 97F0> Removable Sequential Access SCSI-3 device sa0: 160.000MB/s transfers (80.000MHz DT, offset 126, 16bit) Thanks, -Andre _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"