linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET #upstream-fixes] libata: improve flaky link handling
@ 2009-01-29 11:31 Tejun Heo
  2009-01-29 11:31 ` [PATCH 1/8] libata: fix EH device failure handling Tejun Heo
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Tejun Heo @ 2009-01-29 11:31 UTC (permalink / raw)
  To: jeff, linux-ide


Hello,

This patchset is kicked off by kernel bz#9913 which reports hot
plugging and general detection problems with WD My Book drives.  WD
was kind enough to provide me with these drives and I played quite a
bit with a few controllers and weird cabling configurations including
long cables and several genders.

It was surprisingly easy to trigger link layer problems.  eSATA ports
often go through extra cable and gender.  eSATA cables tend to be
longer than internal ones and as the cables are much stiffer touching
or moving the cable can easily cause enough wiggle at the connectors
to cause temporary transmission problems and being outside, it's much
more likely to be moved.

So, with abundant link quality problems, the following problems have
been identified.

a. Our link speed down logic on device probing failure is broken.  It
   somehow got masked off by a condition test which is there to
   prevent spurious warning messages.  This prevented repeated
   IDENTIFY failures from triggering link speed down.

b. When the condition is right (or wrong), devices succeed at
   negotiating 3.0Gbps but fails to actually establish link over it.
   This leads to frustrating repetition of hotplug events followed by
   failed reset attempts.  libata EH needs to remember failed probe
   trials and speed the link down to work around this problem.

c. Certain WD My Book's react badly to certain transmission errors.
   After a link error, it often completely shuts down the eSATA port
   and power down.  The only way to wake it up is to remove and
   re-apply power.  With the right cabling, this almost renders the
   device unusable as it completely shuts down when the host tries to
   transfer data.

This patchset contains patches to address the above three problems.

 0001-libata-fix-EH-device-failure-handling.patch
 0002-libata-move-ata_dev_disable-to-libata-eh.c.patch
 0003-libata-check-onlineness-before-using-SPD-in-sata_do.patch
 0004-libata-clear-dev-ering-in-smarter-way.patch
 0005-libata-add-spd_limit-to-sata_down_spd_limit.patch
 0006-libata-improve-probe-failure-handling.patch
 0007-libata-add-no-penalty-retry-request-for-EH-device-h.patch
 0008-libata-implement-HORKAGE_1_5_GBPS-and-apply-it-to-W.patch

0001 fixes #a.  0002-0006 implement workaround for #b and 0007-0008
for #c.  This patchset is on top of the current upstream-fixes[1].

Thanks.

 drivers/ata/libata-core.c |   93 +++++++++++++++++++++++++++++++++++-----------
 drivers/ata/libata-eh.c   |   87 +++++++++++++++++++++++++++++++++++++++----
 drivers/ata/libata-pmp.c  |    2 
 drivers/ata/libata.h      |    4 -
 include/linux/libata.h    |   19 +++++----
 5 files changed, 164 insertions(+), 41 deletions(-)

--
tejun

[1] 4a99d95fa836e254d17910e52663ba2be7b880e7

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2009-02-03  4:04 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-29 11:31 [PATCHSET #upstream-fixes] libata: improve flaky link handling Tejun Heo
2009-01-29 11:31 ` [PATCH 1/8] libata: fix EH device failure handling Tejun Heo
2009-01-29 11:31 ` [PATCH 2/8] libata: move ata_dev_disable() to libata-eh.c Tejun Heo
2009-01-29 11:31 ` [PATCH 3/8] libata: check onlineness before using SPD in sata_down_spd_limit() Tejun Heo
2009-01-29 11:31 ` [PATCH 4/8] libata: clear dev->ering in smarter way Tejun Heo
2009-01-29 11:31 ` [PATCH 5/8] libata: add @spd_limit to sata_down_spd_limit() Tejun Heo
2009-01-29 11:31 ` [PATCH 6/8] libata: improve probe failure handling Tejun Heo
2009-01-29 11:31 ` [PATCH 7/8] libata: add no penalty retry request for EH device handling routines Tejun Heo
2009-01-29 11:31 ` [PATCH 8/8] libata: implement HORKAGE_1_5_GBPS and apply it to WD My Book Tejun Heo
2009-02-03  4:04   ` Jeff Garzik
2009-01-29 14:07 ` [PATCHSET #upstream-fixes] libata: improve flaky link handling Greg Freemyer
2009-01-29 15:50   ` Mark Lord
2009-01-29 23:57     ` Tejun Heo

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).