[Bug 191717] [iscsi] smartctl -H gives "ATA output registers missing" for a disk using the isci driver

Martin Simmons martin at lispworks.com
Tue Jul 8 11:56:25 UTC 2014


>>>>> On Mon, 07 Jul 2014 23:12:27 -0400, Douglas Gilbert said:
> 
> On 14-07-07 09:45 PM, bugzilla-noreply at freebsd.org wrote:
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191717
> >
> > Mark Linimon <linimon at FreeBSD.org> changed:
> >
> >             What    |Removed                     |Added
> > ----------------------------------------------------------------------------
> >             Assignee|freebsd-bugs at FreeBSD.org    |freebsd-scsi at FreeBSD.org
> >              Summary|smartctl -H gives "ATA      |[iscsi] smartctl -H gives
> >                     |output registers missing"   |"ATA output registers
> >                     |for a disk using the isci   |missing" for a disk using
> >                     |driver                      |the isci driver
> >
> > --- Comment #1 from Mark Linimon <linimon at FreeBSD.org> ---
> > Over to maintainers.
> >
> 
> At the point of failure "whatever" produces this SCSI sense data:
>     f0 00 01 00 50 40 00 00  00 c2 4f 00 00 1d 00 00 00 00
> 
> FreeBSD is wrong to print out 18 bytes because that is an 8
> byte (deferred, fixed type) buffer because byte 7 (the
> additional length) is 0. Whatever produced that broken
> sense data is the probably culprit.
> 
> It is trying to say there is "ATA pass-through information
> available" but fails to get its message across.

Hi,

I'm the original reporter.

The sense data is smartctl's interpretation of the ccb union.

In particular, the bytes are from ccb->csio.sense_data and it calculates 18
from ccb->csio.sense_len - ccb->csio.sense_resid (32 - 14).  I don't know if
that is correct or not.

FWIW, here is the output from CentOS 6.3 on the same machine:

REPORT-IOCTL: Device=/dev/sdc Command=SMART STATUS CHECK
 Input:   FR=0xda, SC=...., LL=...., LM=0x4f, LH=0xc2, DEV=...., CMD=0xb0
 [ata pass-through(16): 85 06 2c 00 da 00 00 00 00 00 4f 00 c2 00 b0 00 ]
  scsi_status=0x2, host_status=0x0, driver_status=0x8
  info=0x1  duration=17 milliseconds  resid=0
  >>> Sense buffer, len=22:
 00     72 00 00 00 00 00 00 0e  09 0c 00 00 00 00 00 00                        
 10     00 4f 00 c2 40 50                                                       
  status=2: [desc] sense_key=0 asc=0 ascq=0
Values from ATA Return Descriptor are:
 00     09 0c 00 00 00 00 00 00  00 4f 00 c2 40 50                              
 [Duration: 0.016s]
 Output: ERR=0x00, SC=0x00, LL=0x00, LM=0x4f, LH=0xc2, DEV=0x40, STS=0x50
REPORT-IOCTL: Device=/dev/sdc Command=SMART STATUS CHECK returned 0

It appears to have the same ata pass-through command but completely different
sense data.

__Martin


More information about the freebsd-scsi mailing list