From: Damien Le Moal <damien.lemoal@opensource.wdc.com>
To: marius@psihoexpert.ro
Cc: linux-ide@vger.kernel.org
Subject: Re: Bug report for ahci-mvebu driver
Date: Tue, 24 Jan 2023 18:53:58 +0900 [thread overview]
Message-ID: <f4d558fd-343a-8cb5-605d-574af42ad3db@opensource.wdc.com> (raw)
In-Reply-To: <db3fa398d4a1dcadb9df02d1001a61c6@psihoexpert.ro>
On 1/24/23 17:04, marius@psihoexpert.ro wrote:
> January 24, 2023 1:00 AM, "Damien Le Moal" <damien.lemoal@opensource.wdc.com> wrote:
>
>>> I think that the old behaviour (before commit
>>> 2dc0b46b5ea30f169b0b272253ea846a5a281731) of slowing down sata speed
>>> when a connection can't be established is in fact the right thing to
>>> do. Maybe a longer delay before reducing the link speed would satisfy
>>> the random cases that the commit author reported. Maybe he was just
>>> having a loose connector issue - especially since he only reported one
>>> case.
>>
>> I do not think that a longer delay will change anything in your case since
>> the device presence cannot be established when starting speed negotiation
>> without a limit: see the "debounce, SCR=0x100" messages in your debug,
>> while the 1.5gbps link speed forcing leads to an immediate device presence
>> detected (debounce, SCR=0x113 message).
>
> I was referring to the original "bug" the commit author (David Milburn) was trying to fix.
>
>> Can you please try this one:
>>
>> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
>> index 884ae73b11ea..a4e2a93af0e5 100644
>> --- a/drivers/ata/libata-core.c
>> +++ b/drivers/ata/libata-core.c
>> @@ -3085,10 +3085,17 @@ int sata_down_spd_limit(struct ata_link *link, u32
>> spd_limit)
>> * If not, use cached value in link->sata_spd.
>> */
>> rc = sata_scr_read(link, SCR_STATUS, &sstatus);
>> - if (rc == 0 && ata_sstatus_online(sstatus))
>> + if (rc == 0 && ata_sstatus_online(sstatus)) {
>> spd = (sstatus >> 4) & 0xf;
>> - else
>> + } else {
>> + /*
>> + * Device is not reporting a speed yet. Use the last recorded
>> + * speed. If we do not have that either, start with Gen3
>> speed.
>> + */
>> + if (!link->sata_spd)
>> + link->sata_spd = 3;
>> spd = link->sata_spd;
>> + }
>>
>> mask = link->sata_spd_limit;
>> if (mask <= 1)
>
> It works.
OK. Good. But from the trace below, it looks like you have the previous
patch still applied. Can you try only the above patch ?
>
> [ 19.408712][ T113] hardreset, Online=>Offline
> [ 19.408721][ T113] sata_set_spd_needed, scontrol=0x330
> [ 19.413195][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 19.418473][ T113] __sata_set_spd_needed, corrected limit=0xFFFFFFFF
> [ 19.424789][ T113] __sata_set_spd_needed, target=0x3
> [ 19.431265][ T113] __sata_set_spd_needed, spd=0x3
> [ 19.436358][ T113] __sata_set_spd_needed, final *scontrol=0x330
> [ 19.442248][ T113] resume, do loop
> [ 19.673966][ T113] resume, after do loop
> [ 19.733966][ T113] debounce, SCR=0x100
> [ 19.793965][ T113] debounce, SCR=0x100
> [ 19.853965][ T113] debounce, SCR=0x100
> [ 19.913966][ T113] debounce, SCR=0x100
> [ 19.973965][ T113] debounce, SCR=0x100
> [ 20.033966][ T113] debounce, SCR=0x100
> [ 20.093966][ T113] debounce, SCR=0x100
> [ 20.153965][ T113] debounce, SCR=0x0
> [ 20.213987][ T113] debounce, SCR=0x0
> [ 20.217673][ T113] resume, return at end of function
> [ 20.221358][ T113] hardreset, ata_phys_link_offline check failed
> [ 20.226462][ T113] ata2: SATA link down (SStatus 0 SControl 330)
> [ 20.321504][ T113] sata_down_spd_limit: limit 0x1, cur spd 0x0, saved limit 0xffffffff, hw limit 0xffffffff
> [ 20.331407][ T113] ata2: limiting SATA link speed to 1.5 Gbps
> [ 20.337294][ T113] hardreset, Online=>Offline
> [ 20.337300][ T113] sata_set_spd_needed, scontrol=0x330
> [ 20.341770][ T113] __sata_set_spd_needed, initial limit=0x1
> [ 20.347037][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 20.352728][ T113] __sata_set_spd_needed, target=0x1
> [ 20.358605][ T113] __sata_set_spd_needed, spd=0x3
> [ 20.363684][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 20.368515][ T113] __sata_set_spd_needed, initial limit=0x1
> [ 20.374576][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 20.380267][ T113] __sata_set_spd_needed, target=0x1
> [ 20.386144][ T113] __sata_set_spd_needed, spd=0x3
> [ 20.391223][ T113] __sata_set_spd_needed, final *scontrol=0x314
> [ 20.397127][ T113] resume, do loop
> [ 20.623966][ T113] resume, after do loop
> [ 20.683966][ T113] debounce, SCR=0x113
> [ 20.733987][ T113] debounce, SCR=0x113
> [ 20.793966][ T113] debounce, SCR=0x113
> [ 20.853965][ T113] debounce, SCR=0x113
> [ 20.913966][ T113] debounce, SCR=0x113
> [ 20.973965][ T113] debounce, SCR=0x113
> [ 21.033966][ T113] debounce, SCR=0x113
> [ 21.093966][ T113] debounce, SCR=0x113
> [ 21.153965][ T113] debounce, SCR=0x113
> [ 21.157826][ T113] resume, return at end of function
> [ 21.161684][ T113] hardreset, Offline=>Online
> [ 21.171249][ T113] hardreset, sata_pmp_supported, before check_ready
> [ 21.343968][ T113] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
> [ 21.357696][ T113] ata2.15: Port Multiplier 1.2, 0x197b:0x0325 r193, 8 ports, feat 0xf/0x1f
> [ 21.366318][ T113] device: 'link2.0': device_add
> [ 21.371124][ T113] device: 'link2.0': device_add
> [ 21.376120][ T113] device: 'dev2.0.0': device_add
> [ 21.380966][ T113] device: 'dev2.0.0': device_add
> [ 21.385953][ T113] device: 'link2.1': device_add
> [ 21.390711][ T113] device: 'link2.1': device_add
> [ 21.395569][ T113] device: 'dev2.1.0': device_add
> [ 21.400437][ T113] device: 'dev2.1.0': device_add
> [ 21.405469][ T113] device: 'link2.2': device_add
> [ 21.410232][ T113] device: 'link2.2': device_add
> [ 21.415086][ T113] device: 'dev2.2.0': device_add
> [ 21.419937][ T113] device: 'dev2.2.0': device_add
> [ 21.424910][ T113] device: 'link2.3': device_add
> [ 21.429669][ T113] device: 'link2.3': device_add
> [ 21.434528][ T113] device: 'dev2.3.0': device_add
> [ 21.439374][ T113] device: 'dev2.3.0': device_add
> ...
> [ 21.640403][ T113] device: 'link2.14': device_add
> [ 21.645287][ T113] device: 'link2.14': device_add
> [ 21.650234][ T113] device: 'dev2.14.0': device_add
> [ 21.655197][ T113] device: 'dev2.14.0': device_add
> [ 21.660252][ T113] ahci-mvebu f10a8000.sata: FBS is enabled
> [ 21.666005][ T113] ata2.00: SCR_CONTROL = 0x300
> [ 21.670684][ T113] ata2.01: SCR_CONTROL = 0x300
> [ 21.675389][ T113] ata2.02: SCR_CONTROL = 0x300
> [ 21.680066][ T113] ata2.03: SCR_CONTROL = 0x300
> [ 21.684774][ T113] ata2.04: SCR_CONTROL = 0x300
> [ 21.689452][ T113] ata2.05: SCR_CONTROL = 0x300
> [ 21.694194][ T113] ata2.06: SCR_CONTROL = 0x300
> [ 21.698871][ T113] ata2.07: SCR_CONTROL = 0x300
> [ 21.703624][ T113] ata2.00: hard resetting link
> [ 21.708304][ T113] hardreset, Online=>Offline
> [ 21.708343][ T113] sata_set_spd_needed, scontrol=0x300
> [ 21.712815][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 21.718093][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 21.724409][ T113] __sata_set_spd_needed, target=0x1
> [ 21.730274][ T113] __sata_set_spd_needed, spd=0x0
> [ 21.735366][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 21.740280][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 21.746343][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 21.752643][ T113] __sata_set_spd_needed, target=0x1
> [ 21.758522][ T113] __sata_set_spd_needed, spd=0x0
> [ 21.763602][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 21.769655][ T113] resume, do loop
> [ 22.004001][ T113] resume, after do loop
> [ 22.012645][ T113] debounce, SCR=0x123
> [ 22.021803][ T113] debounce, SCR=0x123
> [ 22.030784][ T113] debounce, SCR=0x123
> [ 22.039763][ T113] debounce, SCR=0x123
> [ 22.048725][ T113] debounce, SCR=0x123
> [ 22.057686][ T113] debounce, SCR=0x123
> [ 22.066647][ T113] debounce, SCR=0x123
> [ 22.075608][ T113] debounce, SCR=0x123
> [ 22.084568][ T113] debounce, SCR=0x123
> [ 22.093529][ T113] debounce, SCR=0x123
> [ 22.102511][ T113] debounce, SCR=0x123
> [ 22.111494][ T113] debounce, SCR=0x123
> [ 22.115437][ T113] resume, return at end of function
> [ 22.119327][ T113] hardreset, Offline=>Online
> [ 22.128892][ T113] hardreset, after check_ready
> [ 22.129113][ T113] ata2.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> [ 22.140984][ T113] ata2.01: hard resetting link
> [ 22.145653][ T113] hardreset, Online=>Offline
> [ 22.145691][ T113] sata_set_spd_needed, scontrol=0x300
> [ 22.150161][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 22.155436][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 22.161737][ T113] __sata_set_spd_needed, target=0x1
> [ 22.167614][ T113] __sata_set_spd_needed, spd=0x0
> [ 22.172695][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 22.177617][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 22.183657][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 22.189979][ T113] __sata_set_spd_needed, target=0x1
> [ 22.195857][ T113] __sata_set_spd_needed, spd=0x0
> [ 22.200936][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 22.206971][ T113] resume, do loop
> [ 22.434000][ T113] resume, after do loop
> [ 22.442642][ T113] debounce, SCR=0x123
> [ 22.451798][ T113] debounce, SCR=0x123
> [ 22.460779][ T113] debounce, SCR=0x123
> [ 22.469760][ T113] debounce, SCR=0x123
> [ 22.478720][ T113] debounce, SCR=0x123
> [ 22.487680][ T113] debounce, SCR=0x123
> [ 22.496641][ T113] debounce, SCR=0x123
> [ 22.505602][ T113] debounce, SCR=0x123
> [ 22.514563][ T113] debounce, SCR=0x123
> [ 22.523524][ T113] debounce, SCR=0x123
> [ 22.532504][ T113] debounce, SCR=0x123
> [ 22.541487][ T113] debounce, SCR=0x123
> [ 22.545429][ T113] resume, return at end of function
> [ 22.549320][ T113] hardreset, Offline=>Online
> [ 22.558885][ T113] hardreset, after check_ready
> [ 22.559103][ T113] ata2.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> [ 22.570973][ T113] ata2.02: hard resetting link
> [ 22.575639][ T113] hardreset, Online=>Offline
> [ 22.575677][ T113] sata_set_spd_needed, scontrol=0x300
> [ 22.580148][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 22.585423][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 22.591724][ T113] __sata_set_spd_needed, target=0x1
> [ 22.597602][ T113] __sata_set_spd_needed, spd=0x0
> [ 22.602682][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 22.607608][ T113] __sata_set_spd_needed, initial limit=0xFFFFFFFF
> [ 22.613648][ T113] __sata_set_spd_needed, corrected limit=0x1
> [ 22.619968][ T113] __sata_set_spd_needed, target=0x1
> [ 22.625847][ T113] __sata_set_spd_needed, spd=0x0
> [ 22.630927][ T113] __sata_set_spd_needed, final *scontrol=0x310
> [ 22.636959][ T113] resume, do loop
> [ 22.864000][ T113] resume, after do loop
> [ 22.872642][ T113] debounce, SCR=0x0
> [ 22.881798][ T113] debounce, SCR=0x0
> [ 22.890603][ T113] debounce, SCR=0x0
> [ 22.899408][ T113] debounce, SCR=0x0
> [ 22.908194][ T113] debounce, SCR=0x0
> [ 22.916979][ T113] debounce, SCR=0x0
> [ 22.925766][ T113] debounce, SCR=0x0
> [ 22.934553][ T113] debounce, SCR=0x0
> [ 22.943339][ T113] debounce, SCR=0x0
> [ 22.952146][ T113] debounce, SCR=0x0
> [ 22.960953][ T113] debounce, SCR=0x0
> [ 22.969761][ T113] debounce, SCR=0x0
> [ 22.978547][ T113] debounce, SCR=0x0
> [ 22.982295][ T113] resume, return at end of function
> [ 22.986033][ T113] hardreset, ata_phys_link_offline check failed
> [ 22.991325][ T113] ata2.02: SATA link down (SStatus 0 SControl 300)
> ...
> [ 25.191319][ T113] ata2.07: SATA link down (SStatus 0 SControl 300)
> [ 25.204010][ T113] ata2.00: ATA-6: WDC WD50ARC-5040-VOL#01, 0100 AX, max UDMA/133
> [ 25.211624][ T113] ata2.00: 976773168 sectors, multi 0: LBA48
> [ 25.217741][ T113] ata2.00: configured for UDMA/133
> [ 25.222815][ T113] ata2.01: ATA-6: Areca Archive, 0100 AX, max UDMA/133
> [ 25.229751][ T113] ata2.01: 23437498368 sectors, multi 0: LBA48
> [ 25.236026][ T113] ata2.01: configured for UDMA/133
> [ 25.241168][ T113] ata2: EH complete
>
> Marius Dinu
>
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2023-01-24 9:54 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-01 19:21 Bug report for ahci-mvebu driver Dinu Marius
2022-11-06 7:05 ` Damien Le Moal
2022-11-07 9:22 ` marius
2022-11-08 6:27 ` Damien Le Moal
2022-11-09 19:52 ` marius
2022-11-09 19:55 ` marius
2022-11-10 2:05 ` Damien Le Moal
2022-11-11 22:32 ` marius
2022-11-12 1:57 ` Damien Le Moal
2022-11-14 20:52 ` marius
2022-11-15 3:02 ` Damien Le Moal
2022-11-15 7:28 ` marius
2022-11-15 8:10 ` Damien Le Moal
2022-11-18 18:24 ` Dinu Marius
2022-11-24 2:40 ` Damien Le Moal
2022-12-04 1:41 ` marius
2022-12-04 10:22 ` Pali Rohár
2022-12-04 21:14 ` marius
2022-12-04 21:46 ` Pali Rohár
2022-12-05 2:02 ` Damien Le Moal
2022-12-06 6:08 ` Damien Le Moal
2022-12-07 18:27 ` marius
2022-12-07 21:54 ` Damien Le Moal
2022-12-07 22:51 ` Damien Le Moal
2022-12-08 18:06 ` marius
2022-12-09 0:34 ` Damien Le Moal
2022-12-09 2:58 ` Damien Le Moal
2022-12-09 7:31 ` marius
2022-12-09 9:28 ` Damien Le Moal
2022-12-09 18:30 ` marius
2023-01-14 18:01 ` marius
2023-01-15 23:37 ` Damien Le Moal
2023-01-17 8:26 ` Damien Le Moal
2023-01-18 19:43 ` marius
2023-01-19 0:29 ` Damien Le Moal
2023-01-19 18:46 ` marius
2023-01-23 7:02 ` Damien Le Moal
2023-01-23 20:00 ` marius
2023-01-23 23:00 ` Damien Le Moal
2023-01-24 8:04 ` marius
2023-01-24 9:53 ` Damien Le Moal [this message]
2023-01-24 17:02 ` marius
2023-01-27 5:13 ` Damien Le Moal
2023-01-27 6:28 ` Damien Le Moal
2023-01-28 17:08 ` marius
2023-01-29 2:23 ` Damien Le Moal
2023-01-29 10:24 ` marius
2023-01-30 1:16 ` Damien Le Moal
2023-01-30 2:38 ` Damien Le Moal
2023-01-30 7:23 ` marius
2023-01-30 7:37 ` Damien Le Moal
2023-01-30 23:22 ` Damien Le Moal
2023-01-31 7:20 ` marius
2023-01-31 7:28 ` Damien Le Moal
2023-02-07 18:40 ` marius
2023-02-07 23:39 ` Damien Le Moal
2023-02-08 12:17 ` marius
2023-02-08 23:00 ` Damien Le Moal
2023-02-12 13:14 ` marius
2023-02-12 23:11 ` Damien Le Moal
2023-01-24 17:06 ` Bug report for sata_via driver marius
2023-01-25 1:26 ` Damien Le Moal
2022-12-08 21:26 ` Bug report for ahci-mvebu driver Pali Rohár
2022-12-09 1:54 ` Damien Le Moal
2022-11-26 14:26 ` Pali Rohár
2023-01-23 9:10 ` Hajo Noerenberg
2023-01-23 12:13 ` Damien Le Moal
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=f4d558fd-343a-8cb5-605d-574af42ad3db@opensource.wdc.com \
--to=damien.lemoal@opensource.wdc.com \
--cc=linux-ide@vger.kernel.org \
--cc=marius@psihoexpert.ro \
/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