[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <465F8230.2040105@gmail.com>
Date: Fri, 01 Jun 2007 11:19:28 +0900
From: Tejun Heo <htejun@...il.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>,
Jeff Garzik <jgarzik@...ox.com>
CC: Gregor Jasny <gjasny@...glemail.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-ide@...r.kernel.org, Alan Cox <alan@...rguk.ukuu.org.uk>
Subject: Re: Linux v2.6.22-rc3
Hello,
Linus Torvalds wrote:
> On Fri, 1 Jun 2007, Tejun Heo wrote:
>> Gregor's cdrom has broken SRST support which is extremely rare and
>> broken.
>
> Well, the concept is neither rare nor arguably all that broken.
>
> The paper standards floating around in the industry are so much toilet
> paper. The only standard that seems to really matter is what Windows has
> traditionally done. We may not like it, but there it is...
>
> This bites us more when it comes to the real el-cheapo stuff, notably when
> it comes to various USB mass storage things (which have some random
> USB->flash controller cobbled together by a senile llama on crack), and is
> almost unheard of for anythign that is "server-grade", but when it comes
> to no-brand random devices, it really does tend to be the case that the
> only testing they ever had was using Windows.
>
> And hardware is seldom any different from software: if it wasn't tested,
> it probably doesn't work.
Yeap, agreed. SRST on PATA works on most devices tho. This device is
the first reported one which genuinely doesn't like SRST itself but we
also had a case where a device doesn't report proper diagnostic code and
another one which reports incorrect device class code.
Hardreset on SATA works better because it's much more integral part of
the protocol. SRST also seems to work better but there is an emulated
PMP device which craps itself if SRST is issued to it.
> So it would be good if somebody knew what the Windows ID/startup sequence
> was/is. I think we figured it out by trial-and-error for the USB mass
> storage stuff. But it tends to boil down to: don't do things that aren't
> absolutely required (for SCSI, it was things like not asking for mode
> pages that weren't absolutely required, because some devices wouldn't
> support it, and would simply lock up if you did so!)
Most BIOSen, Windows and old IDE driver don't reset at all during
probing. They first issue IDENTIFY unconditionally, if that fails,
IDENTIFY_PACKET. From the beginning, libata has issued reset during
probing. We've had a few problems regarding this but they have been
worked around successfully till now. One of the upsides of doing reset
during probing is that the reset code path gets tested a lot and libata
is more likely to recover properly after error conditions. With SATA,
this is getting more important because errors are much more common and
happen occasionally even on perfectly healthy machines.
As libata gets much wider userbase including old/weird PATA devices, we
seem to be facing more of these broken devices. We may be reaching the
point where the benefit of doing reset during probing isn't worth the
price we have to pay, at least on PATA.
Jeff, what do you think?
--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists