APST not working on Intel p1600x
Andrea Mencarelli
andrea3000 at gmail.com
Thu May 22 14:20:10 PDT 2025
Hi,
I’m reaching out for help regarding APST not working with an Intel p1600x 118GB drive.
I have a system running linux kernel v6.12.24 with 2 nvme drives:
- Samsung 980 Pro
- Intel p1600x
APST works correctly on the Samsung 980 Pro, while it doesn’t work on the Intel p1600x.
The available power states for the Intel NVME are the following:
Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 5.50W - - 0 0 0 0 1000 4000
1 + 4.60W - - 0 1 0 1 1000 4000
2 + 3.30W - - 0 2 0 2 1000 4000
It supports only operative power states.
If I show the auto PST entries with this command: nvme get-feature /dev/nvme0 -f 0x0c -H
I get a table full of zeroes (I’m showing only the first few entries)
get-feature:0x0c (Autonomous Power State Transition), Current value:0x00000001
Autonomous Power State Transition Enable (APSTE): Enabled
Auto PST Entries .................
Entry[ 0]
.................
Idle Time Prior to Transition (ITPT): 0 ms
Idle Transition Power State (ITPS): 0
.................
Entry[ 1]
.................
Idle Time Prior to Transition (ITPT): 0 ms
Idle Transition Power State (ITPS): 0
.................
Entry[ 2]
.................
Idle Time Prior to Transition (ITPT): 0 ms
Idle Transition Power State (ITPS): 0
As you can see, APST is enabled. If I understand correctly, this table should show idle times only for non-operative power state, is that correct? Or is this the first clue that something is wrong?
I tried both setting default_ps_max_latency_us to a value larger than 5000us (ent_lat + ex_lat) and by setting force_apst=1, but the drive remains on PS0 at all times.
I can manually put the drive at PS2 with this command: nvme set-feature /dev/nvme0 -f 2 /dev/nvme0n1 -V 0x2
but I can’t get APST to work.
Do you have any suggestions on how to investigate this further and make it work?
Thank you
Regards,
Andrea
More information about the Linux-nvme
mailing list