Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Jul 2014 09:44:54 -0700
From:      Jim Harris <jim.harris@gmail.com>
To:        dgilbert@interlog.com
Cc:        FreeBSD-scsi <freebsd-scsi@freebsd.org>, Alex Samorukov <samm@os2.kiev.ua>, Christian Franke <Christian.Franke@t-online.de>
Subject:   Re: [Bug 191717] [iscsi] smartctl -H gives "ATA output registers missing" for a disk using the isci driver
Message-ID:  <CAJP=Hc9Z8wcD=T60uYzkDKrb0ndjdMwFAXFT8h8UvxRq8zHJzw@mail.gmail.com>
In-Reply-To: <53BC2DC5.60005@interlog.com>
References:  <bug-191717-5312@https.bugs.freebsd.org/bugzilla/> <bug-191717-5312-kh8g7nOcew@https.bugs.freebsd.org/bugzilla/> <53BB619B.4060908@interlog.com> <201407081145.s68Bjxn6006452@higson.cam.lispworks.com> <53BC2DC5.60005@interlog.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--e89a8ff1ce12834f2404fdc56d7f
Content-Type: text/plain; charset=UTF-8

On Tue, Jul 8, 2014 at 10:43 AM, Douglas Gilbert <dgilbert@interlog.com>
wrote:

> On 14-07-08 07:45 AM, Martin Simmons wrote:
>
>> 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.
>>
>
> The SAT standard originally only defined "descriptor" sense
> data format for passing back ATA errors and warning. That is
> what is being done properly in the Centos 6.3 output that
> you have shown above.
>
> More recently someone at T10 objected that SAT ignored the D_SENSE
> flag which allows an application client to choose whether it wants
> "fixed" or "descriptor" sense data format. It looks like the FreeBSD
> case is trying to produce the equivalent "fixed" sense data, but it
> fails to format it properly.
>
> So in the FreeBSD case you are looking for the SAT Layer (SATL). It
> could be in the FreeBSD CAM mid-level, the driver code or firmware,
> or in a remote device like a USB bridge. However if it was in something
> like a USB bridge then you would expect FreeBSD and Linux to react
> the same way. So it looks like a FreeBSD bug.
>
> Doug Gilbert
>
>
Apologies for missing this thread until now.

The SATL that is generating this fixed format sense data is in the isci
driver itself.  I think isci is returning the fixed format sense data
correctly.  My reading of the SPC spec is that fixed format sense data is
18 bytes + additional sense length, so if sense_data[7] == 0, then the
sense data should indeed be 18 bytes long.  SAT-3 also indicates that for
fixed format sense data for ATA PASSTHROUGH commands, there are no
additional sense bytes - everything is returned in the INFORMATION and
COMMAND-SPECIFIC INFORMATION bytes which are part of the first 18 bytes.

I have looked a little at the smartctl code, and it does not look like it
supports fixed format sense data - at least for ATA PASSTHROUGH.  It
expects additional sense length to be non-zero.  smartctl could be fixed,
but I think for compatibility, I should have isci return descriptor sense
for ATA PASSTHROUGH commands instead.

Martin - could you please test the attached patch?  This passes your test
case using smartctl 6.3 r3939.

Thanks,

-Jim

--e89a8ff1ce12834f2404fdc56d7f
Content-Type: application/octet-stream; name="sati_passthrough_sense.patch"
Content-Disposition: attachment; filename="sati_passthrough_sense.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hxevf8v30

SW5kZXg6IHN5cy9kZXYvaXNjaS9zY2lsL2ludGVsX3Njc2kuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMv
ZGV2L2lzY2kvc2NpbC9pbnRlbF9zY3NpLmgJKHJldmlzaW9uIDI2NjQ3MykKKysrIHN5cy9kZXYv
aXNjaS9zY2lsL2ludGVsX3Njc2kuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0Nyw4IEBA
CiAjZGVmaW5lIFNDU0lfSU5GT1JNQVRJT05fREVTQ1JJUFRPUl9MRU5HVEggICAgICAgICAgICAg
ICAgMHgwYwogI2RlZmluZSBTQ1NJX0JMT0NLX0RFU0NSSVBUT1JfQURESVRJT05BTF9MRU5HVEgg
ICAgICAgICAgICAweDIKICNkZWZpbmUgU0NTSV9CTE9DS19ERVNDUklQVE9SX0xFTkdUSCAgICAg
ICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIFNDU0lfQVRBX1NUQVRVU19SRVRVUk5fREVTQ1JJ
UFRPUl9BRERJVElPTkFMX0xFTkdUSAkweGMKKyNkZWZpbmUgU0NTSV9BVEFfU1RBVFVTX1JFVFVS
Tl9ERVNDUklQVE9SX0xFTkdUSAkJMHhlCiAKICNkZWZpbmUgU0NTSV9TRU5TRV9EQVRBX0RFU0Nf
QklUICAgIDB4MDEKIApJbmRleDogc3lzL2Rldi9pc2NpL3NjaWwvc2F0aV9wYXNzdGhyb3VnaC5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHN5cy9kZXYvaXNjaS9zY2lsL3NhdGlfcGFzc3Rocm91Z2guYwkocmV2
aXNpb24gMjY2NDczKQorKysgc3lzL2Rldi9pc2NpL3NjaWwvc2F0aV9wYXNzdGhyb3VnaC5jCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzYsOCArMTc2LDYgQEAKICAgIFU4ICAgICAgICAgICAgICAgICAg
ICAqIHNlbnNlX2RhdGE7CiAgICBVMzIgICAgICAgICAgICAgICAgICAgICBzZW5zZV9sZW47CiAg
ICBVOCAgICAgICAgICAgICAgICAgICAgKiBjZGI7Ci0gICB1bnNpZ25lZCBjaGFyICAgICAgICAg
ICBzZWN0b3JfY291bnRfdXBwZXI7Ci0gICB1bnNpZ25lZCBjaGFyICAgICAgICAgICBsYmFfdXBw
ZXI7CiAKICNpZmRlZiBTQVRJX1RSQU5TUE9SVF9TVVBQT1JUU19TQVMKICAgIFNDSV9TU1BfUkVT
UE9OU0VfSVVfVCAqIHJzcF9pdSA9IChTQ0lfU1NQX1JFU1BPTlNFX0lVX1QqKQpAQCAtMjA4LDMy
ICsyMDYsMjkgQEAKIAogICAgY2RiID0gc2F0aV9jYl9nZXRfY2RiX2FkZHJlc3Moc2NzaV9pbyk7
CiAKLSAgIGlmIChzYXRpX2dldF9hdGFfc2VjdG9yX2NvdW50X2V4dChyZWdpc3Rlcl9maXMpICE9
IDApIHsKLSAgICAgIHNlY3Rvcl9jb3VudF91cHBlciA9IDE7Ci0gICB9IGVsc2UgewotICAgICAg
IHNlY3Rvcl9jb3VudF91cHBlciA9IDA7Ci0gICB9CisgICBzYXRpX3NldF9zZW5zZV9kYXRhX2J5
dGUoc2Vuc2VfZGF0YSwgc2Vuc2VfbGVuLCA4KzAsIFNDU0lfQVRBX1NUQVRVU19SRVRVUk5fREVT
Q1JJUFRPUl9UWVBFKTsKKyAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBz
ZW5zZV9sZW4sIDgrMSwgU0NTSV9BVEFfU1RBVFVTX1JFVFVSTl9ERVNDUklQVE9SX0FERElUSU9O
QUxfTEVOR1RIKTsKKyAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5z
ZV9sZW4sIDgrMiwgUEFTU1RIUk9VR0hfQ0RCX0VYVEVORChjZGIpKTsKKyAgIHNhdGlfc2V0X3Nl
bnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5zZV9sZW4sIDgrMywgKFU4KXNhdGlfZ2V0X2F0
YV9lcnJvcihyZWdpc3Rlcl9maXMpKTsKKyAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5z
ZV9kYXRhLCBzZW5zZV9sZW4sIDgrNSwgc2F0aV9nZXRfYXRhX3NlY3Rvcl9jb3VudChyZWdpc3Rl
cl9maXMpKTsKKyAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5zZV9s
ZW4sIDgrNywgc2F0aV9nZXRfYXRhX2xiYV9sb3cocmVnaXN0ZXJfZmlzKSk7CisgICBzYXRpX3Nl
dF9zZW5zZV9kYXRhX2J5dGUoc2Vuc2VfZGF0YSwgc2Vuc2VfbGVuLCA4KzksIHNhdGlfZ2V0X2F0
YV9sYmFfbWlkKHJlZ2lzdGVyX2ZpcykpOworICAgc2F0aV9zZXRfc2Vuc2VfZGF0YV9ieXRlKHNl
bnNlX2RhdGEsIHNlbnNlX2xlbiwgOCsxMSwgc2F0aV9nZXRfYXRhX2xiYV9oaWdoKHJlZ2lzdGVy
X2ZpcykpOworICAgc2F0aV9zZXRfc2Vuc2VfZGF0YV9ieXRlKHNlbnNlX2RhdGEsIHNlbnNlX2xl
biwgOCsxMiwgc2F0aV9nZXRfYXRhX2RldmljZShyZWdpc3Rlcl9maXMpKTsKKyAgIHNhdGlfc2V0
X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5zZV9sZW4sIDgrMTMsIChVOClzYXRpX2dl
dF9hdGFfc3RhdHVzKHJlZ2lzdGVyX2ZpcykpOwogCi0gICBpZiAoc2F0aV9nZXRfYXRhX2xiYV9o
aWdoX2V4dChyZWdpc3Rlcl9maXMpICE9IDAgfHwKLSAgICAgICBzYXRpX2dldF9hdGFfbGJhX21p
ZF9leHQocmVnaXN0ZXJfZmlzKSAhPSAwIHx8Ci0gICAgICAgc2F0aV9nZXRfYXRhX2xiYV9sb3df
ZXh0KHJlZ2lzdGVyX2ZpcykgIT0gMCkgewotICAgICAgbGJhX3VwcGVyID0gMTsKKyAgIGlmIChQ
QVNTVEhST1VHSF9DREJfRVhURU5EKGNkYikpIHsKKyAgICAgIHNhdGlfc2V0X3NlbnNlX2RhdGFf
Ynl0ZShzZW5zZV9kYXRhLCBzZW5zZV9sZW4sIDgrNCwgc2F0aV9nZXRfYXRhX3NlY3Rvcl9jb3Vu
dF9leHQocmVnaXN0ZXJfZmlzKSk7CisgICAgICBzYXRpX3NldF9zZW5zZV9kYXRhX2J5dGUoc2Vu
c2VfZGF0YSwgc2Vuc2VfbGVuLCA4KzYsIHNhdGlfZ2V0X2F0YV9sYmFfbG93X2V4dChyZWdpc3Rl
cl9maXMpKTsKKyAgICAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5z
ZV9sZW4sIDgrOCwgc2F0aV9nZXRfYXRhX2xiYV9taWRfZXh0KHJlZ2lzdGVyX2ZpcykpOworICAg
ICAgc2F0aV9zZXRfc2Vuc2VfZGF0YV9ieXRlKHNlbnNlX2RhdGEsIHNlbnNlX2xlbiwgOCsxMCwg
c2F0aV9nZXRfYXRhX2xiYV9oaWdoX2V4dChyZWdpc3Rlcl9maXMpKTsKICAgIH0gZWxzZSB7Ci0g
ICAgICAgbGJhX3VwcGVyID0gMDsKKyAgICAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5z
ZV9kYXRhLCBzZW5zZV9sZW4sIDgrNCwgMCk7CisgICAgICBzYXRpX3NldF9zZW5zZV9kYXRhX2J5
dGUoc2Vuc2VfZGF0YSwgc2Vuc2VfbGVuLCA4KzYsIDApOworICAgICAgc2F0aV9zZXRfc2Vuc2Vf
ZGF0YV9ieXRlKHNlbnNlX2RhdGEsIHNlbnNlX2xlbiwgOCs4LCAwKTsKKyAgICAgIHNhdGlfc2V0
X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5zZV9sZW4sIDgrMTAsIDApOwogICAgfQog
Ci0gICAvLyBJbmZvcm1hdGlvbiBzZWN0aW9uCi0gICBzYXRpX3NldF9zZW5zZV9kYXRhX2J5dGUo
c2Vuc2VfZGF0YSwgc2Vuc2VfbGVuLCAzLCAgKFU4KXNhdGlfZ2V0X2F0YV9lcnJvcihyZWdpc3Rl
cl9maXMpKTsKLSAgIHNhdGlfc2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5zZV9s
ZW4sIDQsICAoVTgpc2F0aV9nZXRfYXRhX3N0YXR1cyhyZWdpc3Rlcl9maXMpKTsKLSAgIHNhdGlf
c2V0X3NlbnNlX2RhdGFfYnl0ZShzZW5zZV9kYXRhLCBzZW5zZV9sZW4sIDUsICBzYXRpX2dldF9h
dGFfZGV2aWNlKHJlZ2lzdGVyX2ZpcykpOwotICAgc2F0aV9zZXRfc2Vuc2VfZGF0YV9ieXRlKHNl
bnNlX2RhdGEsIHNlbnNlX2xlbiwgNiwgIHNhdGlfZ2V0X2F0YV9zZWN0b3JfY291bnQocmVnaXN0
ZXJfZmlzKSk7Ci0KLSAgIC8vIENvbW1hbmQgc3BlY2lmaWMgc2VjdGlvbgotICAgc2F0aV9zZXRf
c2Vuc2VfZGF0YV9ieXRlKHNlbnNlX2RhdGEsIHNlbnNlX2xlbiwgOCwgIChQQVNTVEhST1VHSF9D
REJfRVhURU5EKGNkYikgPDwgNykgfCAoc2VjdG9yX2NvdW50X3VwcGVyIDw8IDYpIHwgKGxiYV91
cHBlciA8PCA1KSk7Ci0gICBzYXRpX3NldF9zZW5zZV9kYXRhX2J5dGUoc2Vuc2VfZGF0YSwgc2Vu
c2VfbGVuLCA5LCAgc2F0aV9nZXRfYXRhX2xiYV9oaWdoKHJlZ2lzdGVyX2ZpcykpOwotICAgc2F0
aV9zZXRfc2Vuc2VfZGF0YV9ieXRlKHNlbnNlX2RhdGEsIHNlbnNlX2xlbiwgMTAsIHNhdGlfZ2V0
X2F0YV9sYmFfbWlkKHJlZ2lzdGVyX2ZpcykpOwotICAgc2F0aV9zZXRfc2Vuc2VfZGF0YV9ieXRl
KHNlbnNlX2RhdGEsIHNlbnNlX2xlbiwgMTEsIHNhdGlfZ2V0X2F0YV9sYmFfbG93KHJlZ2lzdGVy
X2ZpcykpOwotCiAgICBzZXF1ZW5jZS0+aXNfc2Vuc2VfcmVzcG9uc2Vfc2V0ID0gVFJVRTsKIH0K
IApJbmRleDogc3lzL2Rldi9pc2NpL3NjaWwvc2F0aV91dGlsLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lz
L2Rldi9pc2NpL3NjaWwvc2F0aV91dGlsLmMJKHJldmlzaW9uIDI2NjQ3MykKKysrIHN5cy9kZXYv
aXNjaS9zY2lsL3NhdGlfdXRpbC5jCSh3b3JraW5nIGNvcHkpCkBAIC00ODUsNyArNDg1LDkgQEAK
IHN0YXRpYwogVTggc2F0aV9zY3NpX2dldF9zZW5zZV9kYXRhX3Jlc3BvbnNlX2NvZGUoU0FUSV9U
UkFOU0xBVE9SX1NFUVVFTkNFX1QgKiBzZXF1ZW5jZSkKIHsKLSAgICBpZiAoc2VxdWVuY2UtPmRl
dmljZS0+ZGVzY3JpcHRvcl9zZW5zZV9lbmFibGUpCisgICAgaWYgKHNlcXVlbmNlLT5kZXZpY2Ut
PmRlc2NyaXB0b3Jfc2Vuc2VfZW5hYmxlIHx8CisgICAgICAgIHNlcXVlbmNlLT50eXBlID09IFNB
VElfU0VRVUVOQ0VfQVRBX1BBU1NUSFJPVUdIXzEyIHx8CisgICAgICAgIHNlcXVlbmNlLT50eXBl
ID09IFNBVElfU0VRVUVOQ0VfQVRBX1BBU1NUSFJPVUdIXzE2KQogICAgIHsKICAgICAgICByZXR1
cm4gU0NTSV9ERVNDUklQVE9SX0NVUlJFTlRfUkVTUE9OU0VfQ09ERTsKICAgICB9CkBAIC01NDgs
NiArNTUwLDEyIEBACiAgICAgICAgLy8gJiYgIWRlZmluZWQoRElTQUJMRV9TQVRJX1dSSVRFKQog
ICAgICAgICBsZW5ndGggKz0gU0NTSV9JTkZPUk1BVElPTl9ERVNDUklQVE9SX0xFTkdUSDsKICAg
ICAgICAgYnJlYWs7CisjaWYgIWRlZmluZWQoRElTQUJMRV9TQVRJX0FUQV9QQVNTVEhST1VHSCkK
KyAgICBjYXNlIFNDU0lfQVRBX1BBU1NUSFJVXzEyOgorICAgIGNhc2UgU0NTSV9BVEFfUEFTU1RI
UlVfMTY6CisgICAgICAgIGxlbmd0aCArPSBTQ1NJX0FUQV9TVEFUVVNfUkVUVVJOX0RFU0NSSVBU
T1JfTEVOR1RIOworICAgICAgICBicmVhazsKKyNlbmRpZiAvLyAhZGVmaW5lZChESVNBQkxFX1NB
VElfQVRBX1BBU1NUSFJPVUdIKQogICAgIH0KIAogICAgIHJldHVybiBsZW5ndGg7Cg==
--e89a8ff1ce12834f2404fdc56d7f--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJP=Hc9Z8wcD=T60uYzkDKrb0ndjdMwFAXFT8h8UvxRq8zHJzw>