Re: SATA link power management issues

Gabriele Mazzotta
2015-01-12T17:03:47Z

On Monday 12 January 2015 08:16:02 Tejun Heo wrote:
> Hello,
>
> What you're experiencing looks like the ssd behaving badly after link
> state transition. I wonder whether the right solution is plugging
> PHYRDY IRQ for a while after LPM state change. Does the following
> path make any difference?
>
> Thanks.
>
> diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
> index 97683e4..684f45d 100644
> --- a/drivers/ata/libahci.c
> +++ b/drivers/ata/libahci.c
> @@ -735,8 +735,8 @@ static int ahci_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
> sata_link_scr_lpm(link, policy, false);
>
> /* turn PHYRDY IRQ back on */
> - pp->intr_mask |= PORT_IRQ_PHYRDY;
> - writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
> + //pp->intr_mask |= PORT_IRQ_PHYRDY;
> + //writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
> }
>
> return 0;

Hi,

I tried it and got the same result:

[ 451.077463] ahci 0000:00:1f.2: port does not support device sleep
[ 452.162451] ata3.00: exception Emask 0x10 SAct 0x400 SErr 0x50000 action 0xe frozen
[ 452.162461] ata3.00: irq_stat 0x00400008, PHY RDY changed
[ 452.162467] ata3: SError: { PHYRdyChg CommWake }
[ 452.162473] ata3.00: failed command: WRITE FPDMA QUEUED
[ 452.162484] ata3.00: cmd 61/58:50:98:7c:4b/00:00:17:00:00/40 tag 10 ncq 45056 out
res 40/00:54:98:7c:4b/00:00:17:00:00/40 Emask 0x10 (ATA bus error)
[ 452.162489] ata3.00: status: { DRDY }
[ 452.162497] ata3: hard resetting link
[ 452.886958] ata3: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 452.890384] ata3.00: configured for UDMA/133
[ 452.902976] ahci 0000:00:1f.2: port does not support device sleep
[ 452.903002] ata3: EH complete

Gabriele