linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex
@ 2012-05-03 15:21 Daniel J Blueman
  2012-05-03 21:23 ` Martin Mokrejs
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Daniel J Blueman @ 2012-05-03 15:21 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide, linux-kernel, Daniel J Blueman

When connected by the optional eSATAp cable, various interface errors
occur with my new external Seagate FreeAgent GoFlex (firmware 0110) until
the interface is forced to 1.5Gbps mode. Blacklist 3.0Gbps mode with it
to avoid the error messages, delays and dataloss potential.

Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
 drivers/ata/libata-core.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 28db50b..0781510 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4119,6 +4119,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 
 	/* Devices which aren't very happy with higher link speeds */
 	{ "WD My Book",			NULL,	ATA_HORKAGE_1_5_GBPS, },
+	{ "Seagate FreeAgent GoFlex",	NULL,	ATA_HORKAGE_1_5_GBPS, },
 
 	/*
 	 * Devices which choke on SETXFER.  Applies only if both the
-- 
1.7.9.5


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

* Re: [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex
  2012-05-03 15:21 [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex Daniel J Blueman
@ 2012-05-03 21:23 ` Martin Mokrejs
  2012-05-04  2:44   ` Daniel J Blueman
  2012-05-14 16:11 ` Daniel J Blueman
  2012-07-23  4:22 ` [PATCH, repost] " Daniel J Blueman
  2 siblings, 1 reply; 5+ messages in thread
From: Martin Mokrejs @ 2012-05-03 21:23 UTC (permalink / raw)
  To: Daniel J Blueman; +Cc: Jeff Garzik, linux-ide, linux-kernel

Daniel J Blueman wrote:
> When connected by the optional eSATAp cable, various interface errors
> occur with my new external Seagate FreeAgent GoFlex (firmware 0110) until
> the interface is forced to 1.5Gbps mode. Blacklist 3.0Gbps mode with it
> to avoid the error messages, delays and dataloss potential.
> 
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
>  drivers/ata/libata-core.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 28db50b..0781510 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4119,6 +4119,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
>  
>  	/* Devices which aren't very happy with higher link speeds */
>  	{ "WD My Book",			NULL,	ATA_HORKAGE_1_5_GBPS, },
> +	{ "Seagate FreeAgent GoFlex",	NULL,	ATA_HORKAGE_1_5_GBPS, },
>  
>  	/*
>  	 * Devices which choke on SETXFER.  Applies only if both the



Hi,
  maybe I am talking nonsense but recently there were some fixes to bus speed posted here at
linux-ide list from Lin Ming <ming.m.lin@intel.com>.

In 3.4-rc5 it is already fixed so that if you unplug and re-plug a SATA disk it can be detected
at 3.0Gbps instead of just 1.5 (because previous unplug caused errors). An additional patch
"Subject: [PATCH v2] libata: skip old error history when counting probe trials"
was just applied few hours ago some maybe you want to re-test? So is your blacklisting necessary?

When inspecting my "lspci -vvvxx" outputs I see that lots of my chipset devices in my SandyBridge
laptop lifted up with the above mentioned patch from 2.5Gbps to 5Gbps
(was about in a thread "Re: Hotplug borked after suspend/resume in Linux-3.3 ?") which did not
original tackle the error counter issue which broke the re-plugging.

Probably ask Lin Ming directly as he wrote all the patches, or lookup linux-ide archives.
Hope this helps,
Martin
(I still do see problems with 3.4-rc5 on ExpressCard housed sata_sil24 so that unplug of a disk
and its re-plug results still only in 1.5Gbps instead of 3.0 Gbps, but if one waits a while
so that the SCSI device is removed, then a re-plug catches up at 3 Gbps. Probably have to apply
the patch to null the error counter. ;-))

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

* Re: [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex
  2012-05-03 21:23 ` Martin Mokrejs
@ 2012-05-04  2:44   ` Daniel J Blueman
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel J Blueman @ 2012-05-04  2:44 UTC (permalink / raw)
  To: Martin Mokrejs; +Cc: Jeff Garzik, linux-ide, linux-kernel

On 4 May 2012 05:23, Martin Mokrejs <mmokrejs@fold.natur.cuni.cz> wrote:
> Daniel J Blueman wrote:
>> When connected by the optional eSATAp cable, various interface errors
>> occur with my new external Seagate FreeAgent GoFlex (firmware 0110) until
>> the interface is forced to 1.5Gbps mode. Blacklist 3.0Gbps mode with it
>> to avoid the error messages, delays and dataloss potential.
>>
[]
>  maybe I am talking nonsense but recently there were some fixes to bus speed posted here at
> linux-ide list from Lin Ming <ming.m.lin@intel.com>.
>
> In 3.4-rc5 it is already fixed so that if you unplug and re-plug a SATA disk it can be detected
> at 3.0Gbps instead of just 1.5 (because previous unplug caused errors). An additional patch
> "Subject: [PATCH v2] libata: skip old error history when counting probe trials"
> was just applied few hours ago some maybe you want to re-test? So is your blacklisting necessary?

This is an unrelated issue. The problems with the FreeAgent GoFlex
eSATAp optional cable are that it has buggy SATA2 support, and there
is a 100% correlation with errors regularly but infrequently (eg once
every few minutes) occurring at 3Gbps and no errors occurring at
1.5Gbps. The Seagate support forums tell the tale also (but largely on
Windows).

> When inspecting my "lspci -vvvxx" outputs I see that lots of my chipset devices in my SandyBridge
> laptop lifted up with the above mentioned patch from 2.5Gbps to 5Gbps
> (was about in a thread "Re: Hotplug borked after suspend/resume in Linux-3.3 ?") which did not
> original tackle the error counter issue which broke the re-plugging.

Another patch will have correctly restored the PCIe 2.0 link training
registers, so this isn't connected.

> (I still do see problems with 3.4-rc5 on ExpressCard housed sata_sil24 so that unplug of a disk
> and its re-plug results still only in 1.5Gbps instead of 3.0 Gbps, but if one waits a while
> so that the SCSI device is removed, then a re-plug catches up at 3 Gbps. Probably have to apply
> the patch to null the error counter. ;-))

You're observing the ~5 second delay on unplug before the disk is
considered removed, to prevent dropping disks with intermittent
link/power/controller reset issues, so here 1.5Gbps link state is held
if unplugged for less than ~5 seconds.

Thanks!
  Daniel
-- 
Daniel J Blueman

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

* Re: [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex
  2012-05-03 15:21 [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex Daniel J Blueman
  2012-05-03 21:23 ` Martin Mokrejs
@ 2012-05-14 16:11 ` Daniel J Blueman
  2012-07-23  4:22 ` [PATCH, repost] " Daniel J Blueman
  2 siblings, 0 replies; 5+ messages in thread
From: Daniel J Blueman @ 2012-05-14 16:11 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide, linux-kernel, Martin Mokrejs

Jeff,

On 3 May 2012 23:21, Daniel J Blueman <daniel@quora.org> wrote:
> When connected by the optional eSATAp cable, various interface errors
> occur with my new external Seagate FreeAgent GoFlex (firmware 0110) until
> the interface is forced to 1.5Gbps mode. Blacklist 3.0Gbps mode with it
> to avoid the error messages, delays and dataloss potential.
>
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
>  drivers/ata/libata-core.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 28db50b..0781510 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4119,6 +4119,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
>
>        /* Devices which aren't very happy with higher link speeds */
>        { "WD My Book",                 NULL,   ATA_HORKAGE_1_5_GBPS, },
> +       { "Seagate FreeAgent GoFlex",   NULL,   ATA_HORKAGE_1_5_GBPS, },
>
>        /*
>         * Devices which choke on SETXFER.  Applies only if both the

I addressed concerns Martin raised; any further objections to taking
this patch? I still see issues and potential data loss after a short
while until the link has negotiated down to 1.5Gb/s [1] without it,
and no issues with the patch applied.

Thanks,
  Daniel

--- [1]

ata5.00: exception Emask 0x52 SAct 0x0 SErr 0x1400c01 action 0x6 frozen
ata5.00: irq_stat 0x0c000000, interface fatal error
ata5: SError: { RecovData Proto HostInt Handshk TrStaTrns }
ata5.00: failed command: READ DMA
ata5.00: cmd c8/00:01:00:00:00/00:00:00:00:00/e0 tag 0 dma 512 in
        res 50/00:00:00:4f:c2/00:00:00:00:00/40 Emask 0x52 (ATA bus error)
ata5.00: status: { DRDY }
ata5: hard resetting link
ata5: SATA link down (SStatus 1 SControl 300)
ata5: hard resetting link
ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata5.00: configured for UDMA/133
ata5: EH complete
-- 
Daniel J Blueman

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

* [PATCH, repost] Prevent interface errors with Seagate FreeAgent GoFlex
  2012-05-03 15:21 [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex Daniel J Blueman
  2012-05-03 21:23 ` Martin Mokrejs
  2012-05-14 16:11 ` Daniel J Blueman
@ 2012-07-23  4:22 ` Daniel J Blueman
  2 siblings, 0 replies; 5+ messages in thread
From: Daniel J Blueman @ 2012-07-23  4:22 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Linux Kernel, linux-ide

When using my Seagate FreeAgent GoFlex eSATAp external disk enclosure,
interface errors are always seen until 1.5Gbps is negotiated [1]. This
occurs using any disk in the enclosure, and when the disk is connected
directly with a generic passive eSATAp cable, we see stable 3Gbps
operation as expected.

Blacklist 3Gbps mode to avoid dataloss and the ~30s delay bus reset
and renegotiation incurs.

Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
 drivers/ata/libata-core.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 28db50b..0781510 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4119,6 +4119,7 @@ static const struct ata_blacklist_entry
ata_device_blacklist [] = {

        /* Devices which aren't very happy with higher link speeds */
        { "WD My Book",                 NULL,   ATA_HORKAGE_1_5_GBPS, },
+       { "Seagate FreeAgent GoFlex",   NULL,   ATA_HORKAGE_1_5_GBPS, },

        /*
         * Devices which choke on SETXFER.  Applies only if both the

--- [1]

<disk plugged into external eSATAp port>
ata5: exception Emask 0x10 SAct 0x0 SErr 0x4050000 action 0xe frozen
ata5: irq_stat 0x00400040, connection status changed
ata5: SError: { PHYRdyChg CommWake DevExch }
ata5: hard resetting link
ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata5.00: ATA-8: Seagate FreeAgent GoFlex, 0110, max UDMA/133
ata5.00: 2930277168 sectors, multi 0: LBA48
ata5.00: configured for UDMA/133
ata5: EH complete
scsi 4:0:0:0: Direct-Access   ATA   Seagate FreeAgen 0110 PQ: 0 ANSI: 5
sd 4:0:0:0: [sdb] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
sd 4:0:0:0: [sdb] 4096-byte physical blocks
sd 4:0:0:0: [sdb] Write Protect is off
sd 4:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 4:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
sd 4:0:0:0: Attached scsi generic sg1 type 0
 sdb: unknown partition table
sd 4:0:0:0: [sdb] Attached SCSI disk
EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
ata5.00: exception Emask 0x10 SAct 0x0 SErr 0x400100 action 0x6 frozen
ata5.00: irq_stat 0x08000000, interface fatal error
ata5: SError: { UnrecovData Handshk }
ata5.00: failed command: WRITE DMA EXT
ata5.00: cmd 35/00:00:38:db:61/00:04:6d:00:00/e0 tag 0 dma 524288 out
     res 50/00:00:37:db:61/00:00:6d:00:00/e0 Emask 0x10 (ATA bus error)
ata5.00: status: { DRDY }
ata5: hard resetting link
ata5: link is slow to respond, please be patient (ready=0)
ata5: COMRESET failed (errno=-16)
ata5: hard resetting link
ata5: link is slow to respond, please be patient (ready=0)
ata5: COMRESET failed (errno=-16)
ata5: hard resetting link
ata5: link is slow to respond, please be patient (ready=0)
ata5: COMRESET failed (errno=-16)
ata5: limiting SATA link speed to 1.5 Gbps
ata5: hard resetting link
ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata5.00: configured for UDMA/133
sd 4:0:0:0: [sdb]
Result: hostbyte=0x00 driverbyte=0x08
sd 4:0:0:0: [sdb]
Sense Key : 0xb [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
    72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
    6d 61 db 37
sd 4:0:0:0: [sdb]
ASC=0x0 ASCQ=0x0
sd 4:0:0:0: [sdb] CDB:
cdb[0]=0x2a: 2a 00 6d 61 db 38 00 04 00 00
end_request: I/O error, dev sdb, sector 1835129656
Buffer I/O error on device dm-0, logical block 229390950
Buffer I/O error on device dm-0, logical block 229390951
Buffer I/O error on device dm-0, logical block 229390952
Buffer I/O error on device dm-0, logical block 229390953
Buffer I/O error on device dm-0, logical block 229390954
Buffer I/O error on device dm-0, logical block 229390955
Buffer I/O error on device dm-0, logical block 229390956
Buffer I/O error on device dm-0, logical block 229390957
Buffer I/O error on device dm-0, logical block 229390958
Buffer I/O error on device dm-0, logical block 229390959
Buffer I/O error on device dm-0, logical block 229390960
Buffer I/O error on device dm-0, logical block 229390961
Buffer I/O error on device dm-0, logical block 229390962
Buffer I/O error on device dm-0, logical block 229390963
Buffer I/O error on device dm-0, logical block 229390964
Buffer I/O error on device dm-0, logical block 229390965
Buffer I/O error on device dm-0, logical block 229390966
Buffer I/O error on device dm-0, logical block 229390967
Buffer I/O error on device dm-0, logical block 229390968
Buffer I/O error on device dm-0, logical block 229390969
Buffer I/O error on device dm-0, logical block 229390970
Buffer I/O error on device dm-0, logical block 229390971
Buffer I/O error on device dm-0, logical block 229390972
Buffer I/O error on device dm-0, logical block 229390973
Buffer I/O error on device dm-0, logical block 229390974
Buffer I/O error on device dm-0, logical block 229390975
Buffer I/O error on device dm-0, logical block 229390976
Buffer I/O error on device dm-0, logical block 229390977
Buffer I/O error on device dm-0, logical block 229390978
Buffer I/O error on device dm-0, logical block 229390979
Buffer I/O error on device dm-0, logical block 229390980
Buffer I/O error on device dm-0, logical block 229390981
Buffer I/O error on device dm-0, logical block 229390982
Buffer I/O error on device dm-0, logical block 229390983
Buffer I/O error on device dm-0, logical block 229390984
Buffer I/O error on device dm-0, logical block 229390985
Buffer I/O error on device dm-0, logical block 229390986
Buffer I/O error on device dm-0, logical block 229390987
Buffer I/O error on device dm-0, logical block 229390988
Buffer I/O error on device dm-0, logical block 229390989
Buffer I/O error on device dm-0, logical block 229390990
Buffer I/O error on device dm-0, logical block 229390991
Buffer I/O error on device dm-0, logical block 229390992
Buffer I/O error on device dm-0, logical block 229390993
Buffer I/O error on device dm-0, logical block 229390994
Buffer I/O error on device dm-0, logical block 229390995
Buffer I/O error on device dm-0, logical block 229390996
Buffer I/O error on device dm-0, logical block 229390997
Buffer I/O error on device dm-0, logical block 229390998
Buffer I/O error on device dm-0, logical block 229390999
Buffer I/O error on device dm-0, logical block 229391000
Buffer I/O error on device dm-0, logical block 229391001
Buffer I/O error on device dm-0, logical block 229391002
Buffer I/O error on device dm-0, logical block 229391003
Buffer I/O error on device dm-0, logical block 229391004
Buffer I/O error on device dm-0, logical block 229391005
Buffer I/O error on device dm-0, logical block 229391006
Buffer I/O error on device dm-0, logical block 229391007
Buffer I/O error on device dm-0, logical block 229391008
Buffer I/O error on device dm-0, logical block 229391009
Buffer I/O error on device dm-0, logical block 229391010
Buffer I/O error on device dm-0, logical block 229391011
Buffer I/O error on device dm-0, logical block 229391012
Buffer I/O error on device dm-0, logical block 229391013
Buffer I/O error on device dm-0, logical block 229391014
Buffer I/O error on device dm-0, logical block 229391015
Buffer I/O error on device dm-0, logical block 229391016
Buffer I/O error on device dm-0, logical block 229391017
Buffer I/O error on device dm-0, logical block 229391018
Buffer I/O error on device dm-0, logical block 229391019
Buffer I/O error on device dm-0, logical block 229391020
Buffer I/O error on device dm-0, logical block 229391021
Buffer I/O error on device dm-0, logical block 229391022
Buffer I/O error on device dm-0, logical block 229391023
Buffer I/O error on device dm-0, logical block 229391024
Buffer I/O error on device dm-0, logical block 229391025
Buffer I/O error on device dm-0, logical block 229391026
Buffer I/O error on device dm-0, logical block 229391027
Buffer I/O error on device dm-0, logical block 229391028
Buffer I/O error on device dm-0, logical block 229391029
Buffer I/O error on device dm-0, logical block 229391030
Buffer I/O error on device dm-0, logical block 229391031
Buffer I/O error on device dm-0, logical block 229391032
Buffer I/O error on device dm-0, logical block 229391033
Buffer I/O error on device dm-0, logical block 229391034
Buffer I/O error on device dm-0, logical block 229391035
Buffer I/O error on device dm-0, logical block 229391036
Buffer I/O error on device dm-0, logical block 229391037
Buffer I/O error on device dm-0, logical block 229391038
Buffer I/O error on device dm-0, logical block 229391039
Buffer I/O error on device dm-0, logical block 229391040
Buffer I/O error on device dm-0, logical block 229391041
Buffer I/O error on device dm-0, logical block 229391042
Buffer I/O error on device dm-0, logical block 229391043
Buffer I/O error on device dm-0, logical block 229391044
Buffer I/O error on device dm-0, logical block 229391045
Buffer I/O error on device dm-0, logical block 229391046
Buffer I/O error on device dm-0, logical block 229391047
Buffer I/O error on device dm-0, logical block 229391048
Buffer I/O error on device dm-0, logical block 229391049
Buffer I/O error on device dm-0, logical block 229391050
Buffer I/O error on device dm-0, logical block 229391051
Buffer I/O error on device dm-0, logical block 229391052
Buffer I/O error on device dm-0, logical block 229391053
Buffer I/O error on device dm-0, logical block 229391054
Buffer I/O error on device dm-0, logical block 229391055
Buffer I/O error on device dm-0, logical block 229391056
Buffer I/O error on device dm-0, logical block 229391057
Buffer I/O error on device dm-0, logical block 229391058
Buffer I/O error on device dm-0, logical block 229391059
Buffer I/O error on device dm-0, logical block 229391060
Buffer I/O error on device dm-0, logical block 229391061
Buffer I/O error on device dm-0, logical block 229391062
Buffer I/O error on device dm-0, logical block 229391063
Buffer I/O error on device dm-0, logical block 229391064
Buffer I/O error on device dm-0, logical block 229391065
Buffer I/O error on device dm-0, logical block 229391066
Buffer I/O error on device dm-0, logical block 229391067
Buffer I/O error on device dm-0, logical block 229391068
Buffer I/O error on device dm-0, logical block 229391069
Buffer I/O error on device dm-0, logical block 229391070
Buffer I/O error on device dm-0, logical block 229391071
Buffer I/O error on device dm-0, logical block 229391072
Buffer I/O error on device dm-0, logical block 229391073
Buffer I/O error on device dm-0, logical block 229391074
Buffer I/O error on device dm-0, logical block 229391075
Buffer I/O error on device dm-0, logical block 229391076
Buffer I/O error on device dm-0, logical block 229391077
EXT4-fs warning (device dm-0): ext4_end_bio:250: I/O error writing to
inode 57281456 (offset 3145728 size 524288 starting block 229390950)
ata5: EH complete
JBD2: Detected IO errors while flushing file data on dm-0-8
-- 
Daniel J Blueman

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

end of thread, other threads:[~2012-07-23  4:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-03 15:21 [PATCH] Prevent interface errors with Seagate FreeAgent GoFlex Daniel J Blueman
2012-05-03 21:23 ` Martin Mokrejs
2012-05-04  2:44   ` Daniel J Blueman
2012-05-14 16:11 ` Daniel J Blueman
2012-07-23  4:22 ` [PATCH, repost] " Daniel J Blueman

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