Re: Regression from 7627a0edef54 ("ata: ahci: Drop low power policy board type") on reboot (but not cold boot)
From: Niklas Cassel
Date: Thu Mar 13 2025 - 08:50:20 EST
Hello Hans,
On Thu, Mar 13, 2025 at 11:04:13AM +0100, Hans de Goede wrote:
>
> I do agree with you that it is a question if this is another bad
> interaction with Samsung SATA SSDs, or if it is a general ATI SATA
> controller problem, but see below.
(snip)
> Right in the mean time Eric has reported back that the above patch fixes
> this. Thank you for testing this Eric,
>
> One reason why ATA_QUIRK_NO_NCQ_ON_ATI was introduced is because
> disabling NCQ has severe performance impacts for SSDs, so we did not want
> to do this for all ATI controllers; or for all Samsung drives. Given that
> until the recent LPM default change we did not use DIPM on ATI chipsets
> the above fix IMHO is a good fix, which even keeps the rest of the LPM
> power-savings.
One slightly interesting thing was that neither the Maxtor or the Samsung
drive reported support for Host-Initiated Power Management (HIPM).
Both drives supported Device-Initiated Power Management (DIPM), and we
could see that DIPM was enabled on both drives.
We already know that LPM works on the Samsung drive with an Intel AHCI
controller. (But since the device does not report support for HIPM, even
on Intel, only DIPM will be used/enabled.)
>
> Right I think it is safe to assume that this is not a Samsung drive problem
> it is an ATI controller problem. The only question is if this only impacts
> ATI <-> Samsung SSD combinations or if it is a general issue with ATI
> controllers. But given the combination of DIPM not having been enabled
> on these controllers by default anyways, combined with the age of these
> motherboards (*) I believe that the above patch is a good compromise to
> fix the regression without needing to wait for more data.
>
> Regards,
>
> Hans
>
> *) And there thus being less users making getting more data hard. And
> alo meaning not having DIPM will impact only the relatively few remaining
> users
I'm still not 100% sure with the best way forward.
The ATI SATA controller reports that it supports ALPM (i.e. also HIPM).
It also reports support for slumber and partial, which means that it must
support both host initiated and device initiated requests to these states.
(See AHCI spec 3.1.1 - Offset 00h: CAP – HBA Capabilities,
CAP.PSC and CAP.SSC fields.)
Considering that DIPM seems to work fine on the Maxtor drive, I guess your
initial suggestion of a Samsung only quirk which only disables LPM on ATI
is the best way?
It seems that ATI and Samsung must have interpreted some spec differently
from each other, otherwise, I don't understand why this combination
specificially seems to be so extremely bad, ATI + anything other than
Samsung, or Samsung + anything other than ATI seems to work.
Kind regards,
Niklas