From: Douglas Gilbert <dgilbert@interlog.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>,
Jonas Schwertfeger <jschwertfeger@gmail.com>,
Dinh.Nguyen@freescale.com, Mark Lord <mlord@pobox.com>,
Sergei Shtylyov <sshtylyov@mvista.com>,
James Bottomley <James.Bottomley@suse.de>,
Kay Sievers <kay.sievers@vrfy.org>,
David Zeuthen <david@fubar.dk>,
linux-hotplug@vger.kernel.org, linux-usb@vger.kernel.org,
USB Storage List <usb-storage@lists.one-eyed-alien.net>,
Matthew Dharm <mdharm-usb@one-eyed-alien.net>,
linux-scsi@vger.kernel.org,
Lennart Poettering <lennart@poettering.net>
Subject: Re: System hangs when using USB 3.0 HD with on Ubuntu
Date: Tue, 20 Apr 2010 17:48:17 +0000 [thread overview]
Message-ID: <4BCDE8E1.3040509@interlog.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1004201045180.1837-100000@iolanthe.rowland.org>
Alan Stern wrote:
> On Mon, 19 Apr 2010, Sarah Sharp wrote:
>
>> Updated description
>> -------------------
>>
>> Summary:
>>
>> The Buffalo USB3 hard drive fails to mount after being sent an ATA_16
>> IDENTIFY command. It does not fail when the device is connected via a
>> USB 2.0 cable and the same command is sent.
>
> I don't like this summary. The failure to mount is caused by a defect
> in the earlier versions of xhci-hcd (no support for USB port reset),
> not by a bug in the drive. I don't recall seeing a test using the old
> version of hdparm and an updated xhci-hcd, but presumably such a
> combination would work okay.
>
> The real problem with the Buffalo drive is that it responds with a
> phase error when it receives an ATA_16 IDENTIFY DEVICE command with the
> Sector Count field set to 0.
>
>> Details:
>>
>> There seems to be an issue with how the Buffalo USB3 hard drive handles
>> the SCSI ATA pass through commands. We found this issue with the Linux
>> userspace program hdparm, using the Ubuntu Linux Karmic distribution.
>> The device responds correctly to an IDENTIFY DEVICE via the ATA_12
>> tunnel, but it responds with a Phase Error when it's sent an IDENTIFY
>> DEVICE via the ATA_16 tunnel, and then stalls.
>
> You should not say anything about the drive stalling. For one thing,
> it's misleading: The drive doesn't stall but rather it sends a STALL
> token to indicate that the bulk-IN endpoint is halted. For another,
> the STALL is sent _before_ the phase error is reported, not after.
> Lastly, there's absolutely nothing wrong with halting the endpoint like
> this; in fact, the Bulk-Only Transport specification requires it under
> these circumstances.
>
>> The hdparm program thinks the Phase Error is an invalid response:
>>
>> sudo hdparm --verbose /dev/sdb
>>
>> /dev/sdb:
>> outgoing cdb: 85 08 2e 00 00 00 00 00 00 00 00 00 00 40 ec 00
>> SG_IO: ATA_16 status=0x0, host_status=0x7, driver_status=0x0
>> SG_IO: bad response (not CHECK_CONDITION)
>> outgoing cdb: 85 08 2e 00 00 00 00 00 00 00 00 00 00 40 a1 00
>> SG_IO: ATA_16 status=0x0, host_status=0x7, driver_status=0x0
>> SG_IO: bad response (not CHECK_CONDITION)
>> HDIO_DRIVE_CMD(identify) failed: Invalid exchange
>> readonly = 0 (off)
>> readahead = 256 (on)
>> geometry = 36365/64/32, sectors = 0, start = 0
>
> Why include two separate commands here? I thought you were interested
> only in the response to the ATA_16 IDENTIFY DEVICE (the first outgoing
> cdb above).
>
>> Stalling on the ATA_16 IDENTIFY device is fine, but the invalid response
>> is not.
>
> Again, don't mention stalling. Notice that the information from hdparm
> does not show the exact nature of the problem (i.e., that the drive
> responded with a phase error), only that a problem occurred. This
> makes it less useful than you might like.
>
>> The hard drive does not seem to work after this command is sent, and
>> cannot be mounted. If we inhibit udev from running hdparm (by stopping
>> the udev daemon) then the drive can be mounted successfully.
>
> First, this is true only if the drive is attached using USB 3.0.
> Second, after this command the drive still works fine -- xhci-hcd is
> what doesn't work.
>
>> If the drive is plugged in via a USB 2.0 cable, then the drive works
>> correctly, even though it gets issued the same commands.
>
> Right. That's because the larger problem is in xhci-hcd, not in the
> drive.
>
>> The command before the ATA_16 IDENTIFY DEVICE was a SET FEATURES via the
>> ATA_16 tunnel, and it was responded to properly, so we think it should
>> support the ATA_16 commands.
>
> This is wrong. The first command shown above is ATA_16 IDENTIFY
> DEVICE. The second command is ATA_16 IDENTIFY PACKET DEVICE.
>
> To summarize: 0xef is SET FEATURES, 0xec is IDENTIFY DEVICE, and 0xa1
> is IDENTIFY PACKET DEVICE. The command byte is the second-to-last in
> each cdb.
>
>> The full kernel log is here:
>> http://minilop.net/~sarah/buffalo-hd-ata-16-issue.log
>
> I just tried to view that page and got a "403 Forbidden" error. Does
> it contain the kernel log for the hdparm test shown above, or is it a
> log for a different test? My guess is that it's a different test --
> you should mention that fact and describe the commands sent in the
> other test.
>
>> The ATA_12 IDENTIFY command
>
> You mean IDENTIFY DEVICE. There is no ATA IDENTIFY command.
>
>> starts at line 8816. (It says the command
>> is a BLANK command, but it's incorrectly identified that command.)
Picking up an earlier point, SCSI opcode A1h is both:
- BLANK (for optical devices: CD/DVD/BD)
- ATA PASS THROUGH (12) (for disks [both
normal (SBC) and RBC])
Only SCSI primary commands (SPC) have a 1 to 1 mapping
with an opcode (ignoring service actions). So debug
code in the kernel can be slightly misleading when
trying to decode a SCSI command opcode that is not a
"primary" command.
Doug Gilbert
next prev parent reply other threads:[~2010-04-20 17:48 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.44L0.1003261705340.23253-100000@netrider.rowland.org>
[not found] ` <4BAD275A.7050903@interlog.com>
[not found] ` <59ca64281003300044g53ae5170xaf198bf99964fc36@mail.gmail.com>
2010-03-31 11:39 ` System hangs when using USB 3.0 HD with on Ubuntu Jonas Schwertfeger
2010-03-31 14:56 ` Alan Stern
2010-03-31 15:20 ` David Zeuthen
2010-03-31 16:12 ` Douglas Gilbert
2010-03-31 16:36 ` Alan Stern
2010-04-01 13:32 ` Jonas Schwertfeger
2010-04-01 13:42 ` Kay Sievers
2010-04-01 13:55 ` Jonas Schwertfeger
[not found] ` <r2k59ca64281004010655z93fedfa8rdeb447d82a848d9f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-01 14:05 ` Kay Sievers
2010-04-02 12:40 ` Jonas Schwertfeger
[not found] ` <m2l59ca64281004020540z7e502130g22dfc035f1ceda6a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-02 13:09 ` Jonas Schwertfeger
[not found] ` <t2t59ca64281004020609sa0f67f0dj5c127e3f0b2e4db2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-02 14:12 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004021010130.1615-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-02 14:41 ` James Bottomley
[not found] ` <1270219267.2899.73.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2010-04-02 14:57 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004021052040.1615-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-02 15:19 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004021114160.1615-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-02 15:50 ` Sergei Shtylyov
2010-04-02 15:59 ` James Bottomley
2010-04-07 18:08 ` Mark Lord
2010-04-07 18:29 ` James Bottomley
2010-04-07 19:18 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004071516260.5760-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-07 22:49 ` Mark Lord
2010-04-08 5:06 ` Jonas Schwertfeger
2010-04-02 16:21 ` Douglas Gilbert
2010-04-02 16:39 ` Douglas Gilbert
[not found] ` <4BB61DAF.7090709-qazKcTl6WRFWk0Htik3J/w@public.gmane.org>
2010-04-02 21:24 ` Mark Lord
2010-04-03 6:21 ` Jonas Schwertfeger
[not found] ` <4BB73EB3.3040308@pobox.com>
2010-04-03 15:40 ` Jonas Schwertfeger
2010-04-03 16:42 ` Alan Stern
2010-04-03 17:06 ` Jonas Schwertfeger
2010-04-03 20:58 ` Alan Stern
2010-04-04 1:29 ` Mark Lord
[not found] ` <Pine.LNX.4.44L0.1004031648230.21507-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-06 6:43 ` Jonas Schwertfeger
[not found] ` <4BBAD7FF.5000605-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-04-06 14:49 ` Alan Stern
2010-04-06 14:56 ` Jonas Schwertfeger
[not found] ` <Pine.LNX.4.44L0.1004061048590.1722-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-07 6:27 ` Jonas Schwertfeger
[not found] ` <4BBC25C9.5030201-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-04-07 14:36 ` Alan Stern
2010-04-07 14:42 ` Jonas Schwertfeger
2010-04-07 14:51 ` Jerone Young
2010-04-07 15:03 ` Alan Stern
2010-04-07 15:10 ` Jonas Schwertfeger
2010-04-09 15:38 ` Alan Stern
2010-04-09 16:39 ` Douglas Gilbert
[not found] ` <4BBF582F.4040707-qazKcTl6WRFWk0Htik3J/w@public.gmane.org>
2010-04-09 17:14 ` Sarah Sharp
2010-04-09 18:00 ` Jonas Schwertfeger
2010-04-09 19:25 ` Alan Stern
2010-04-09 21:54 ` Sarah Sharp
2010-04-12 7:48 ` Jonas Schwertfeger
2010-04-16 18:20 ` Sarah Sharp
2010-04-16 19:25 ` Alan Stern
2010-04-19 21:15 ` Sarah Sharp
2010-04-20 0:25 ` Mark Lord
2010-04-20 4:31 ` Mark Lord
2010-04-20 15:39 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004201045180.1837-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-20 17:37 ` Sarah Sharp
2010-04-20 19:48 ` Alan Stern
[not found] ` <4BCF0605.7080508@pobox.com>
[not found] ` <4BCF4120.4060806@pobox.com>
2010-04-21 18:27 ` Jonas Schwertfeger
2010-04-21 19:07 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004211506040.1422-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-21 19:24 ` Mark Lord
2010-04-26 16:27 ` Sarah Sharp
2010-04-29 8:44 ` Jonas Schwertfeger
2010-04-29 12:56 ` Mark Lord
2010-04-29 15:45 ` Alan Stern
2010-05-07 10:42 ` Jonas Schwertfeger
[not found] ` <4BE3EE87.6020505-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-05-07 15:03 ` Alan Stern
2010-05-11 6:54 ` Jonas Schwertfeger
2010-05-11 14:44 ` Alan Stern
2010-05-12 12:56 ` Mark Lord
2010-05-12 14:23 ` Douglas Gilbert
2010-05-12 14:37 ` Mark Lord
2010-05-12 14:45 ` Mark Lord
2010-05-12 15:09 ` Alan Stern
2010-05-12 15:39 ` James Bottomley
2010-05-12 18:48 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1005121444450.1353-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-05-13 3:12 ` Mark Lord
2010-05-13 18:42 ` Alan Stern
2010-04-21 12:31 ` Luben Tuikov
2010-04-21 14:31 ` Alan Stern
2010-04-21 12:47 ` Luben Tuikov
2010-04-21 13:52 ` Mark Lord
2010-04-21 14:04 ` James Bottomley
2010-04-21 14:08 ` Mark Lord
2010-04-21 14:15 ` James Bottomley
2010-04-21 14:13 ` Mark Lord
2010-04-21 14:22 ` James Bottomley
[not found] ` <1271859728.2893.72.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2010-04-21 14:53 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1004211032460.1728-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2010-04-21 23:29 ` Stefan Richter
2010-04-20 17:48 ` Douglas Gilbert [this message]
2010-04-16 21:31 ` James Bottomley
2010-04-16 23:56 ` Douglas Gilbert
2010-04-19 15:04 ` Jonas Schwertfeger
2010-04-19 16:02 ` Alan Stern
2010-04-19 20:45 ` Sarah Sharp
2010-04-02 17:36 ` Sarah Sharp
2010-03-31 16:37 ` David Zeuthen
[not found] ` <1270053444.16657.17.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-31 16:58 ` Lennart Poettering
2010-03-31 17:03 ` Lennart Poettering
[not found] ` <20100331165807.GA20547-kS5D54t9nk0aINubkmmoJbNAH6kLmebB@public.gmane.org>
2010-03-31 17:17 ` David Zeuthen
2010-03-31 17:06 ` David Zeuthen
[not found] ` <1270049200.2302.320.camel@laptop>
2010-03-31 15:37 ` Jonas Schwertfeger
2010-04-21 14:58 ` Luben Tuikov
2010-04-21 15:09 ` Luben Tuikov
2010-04-21 16:09 ` Alan Stern
2010-04-21 16:18 ` Martin K. Petersen
2010-04-21 17:41 ` Sarah Sharp
2010-04-21 18:08 ` Alan Stern
2010-04-22 0:08 ` Luben Tuikov
2010-04-22 14:52 ` Alan Stern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BCDE8E1.3040509@interlog.com \
--to=dgilbert@interlog.com \
--cc=Dinh.Nguyen@freescale.com \
--cc=James.Bottomley@suse.de \
--cc=david@fubar.dk \
--cc=jschwertfeger@gmail.com \
--cc=kay.sievers@vrfy.org \
--cc=lennart@poettering.net \
--cc=linux-hotplug@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mdharm-usb@one-eyed-alien.net \
--cc=mlord@pobox.com \
--cc=sarah.a.sharp@linux.intel.com \
--cc=sshtylyov@mvista.com \
--cc=stern@rowland.harvard.edu \
--cc=usb-storage@lists.one-eyed-alien.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).