diff mbox

Prevent interface errors with Seagate FreeAgent GoFlex

Message ID 1336058460-19924-1-git-send-email-daniel@quora.org
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Daniel J Blueman May 3, 2012, 3:21 p.m. UTC
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(+)

Comments

Martin Mokrejs May 3, 2012, 9:23 p.m. UTC | #1
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. ;-))
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Daniel J Blueman May 4, 2012, 2:44 a.m. UTC | #2
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 May 14, 2012, 4:11 p.m. UTC | #3
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
diff mbox

Patch

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