Regression on linux-next (next-20250708)

Borah, Chaitanya Kumar
2025-07-25T06:44:53Z

Hello Damien,

Hope you are doing well. I am Chaitanya from the linux graphics team in
Intel.

This mail is regarding a regression we are seeing in our CI runs[1] on
linux-next repository.

Since the version next-20250708 [2], we are seeing the following regression

`````````````````````````````````````````````````````````````````````````````````
(kms_pm_rpm:5821) igt_pm-CRITICAL: Test assertion failure function
__igt_pm_enable_sata_link_power_management, file ../lib/igt_pm.c:392:

(kms_pm_rpm:5821) igt_pm-CRITICAL: Failed assertion: write(fd,
"min_power\n", strlen("min_power\n")) == strlen("min_power\n")

(kms_pm_rpm:5821) igt_pm-CRITICAL: Last errno: 95, Operation not supported

(kms_pm_rpm:5821) igt_pm-CRITICAL: error: -1 != 10

Test kms_pm_rpm failed.
`````````````````````````````````````````````````````````````````````````````````
Details log can be found in [3].

After bisecting the tree, the following patch [4] seems to be the first
"bad" commit

`````````````````````````````````````````````````````````````````````````````````````````````````````````
commit 4edf1505b76d30e1e1e283d431e4f84ad01ddcef

Author: Damien Le Moal dlemoal@kernel.org

Date: Tue Jul 1 21:53:18 2025 +0900

ata: ahci: Disallow LPM policy control for external ports
`````````````````````````````````````````````````````````````````````````````````````````````````````````

For some context in our kms_pm_rpm tests, we enable min_power policy for
SATA so that we can reach deep runtime power states and restore the
original policy after finishing. [5][6]

IIUC, the above change is based on spec and not something which can be
reverted. So as I see it, we have to drop this code path for external
ports. However I am not sure if we can achieve deep power states without
enforcing it through the sysfs entry.

Atleast for the basic-rte subtest, the test passes if we comment out the
functions controlling the SATA ports. We will need more testing to
determine if this approach work. Any thoughts on it?

Also, are there other ways to detect a port is external other than
receiving EOPNOTSUPP on the sysfs write?

Thank you.

Regards

Chaitanya

[1] https://intel-gfx-ci.01.org/tree/linux-next/combined-alt.html?
[2]
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20250708
[3]
https://gfx-ci.igk.intel.com/tree/linux-next/next-20250703/fi-ilk-650/igt@kms_pm_rpm@basic-pci-d3-state.html
[4]
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20250708&id=4edf1505b76d30e1e1e283d431e4f84ad01ddcef
[5]
https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/blob/master/tests/intel/i915_pm_rpm.c?ref_type=heads
[6]