[RESPONDED] Bad battery life - high power draw at idle and light use (Framework 13 Ryzen)

I looked at little bit at the NVME on my local system and it advertises 6 states.

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     4.70W    4.30W       -    0  0  0  0        0       0
 1 +     3.00W    3.00W       -    0  0  0  0        0       0
 2 +     2.20W    2.00W       -    0  0  0  0        0       0
 3 -   0.0150W       -        -    3  3  3  3     1500    2500
 4 -   0.0050W       -        -    4  4  4  4    10000    6000
 5 -   0.0033W       -        -    5  5  5  5   176000   25000

However it’s also got autonomous power state transitions enabled for a bunch of the “non-operational” states.

❯ sudo nvme get-feature /dev/nvme0 -f 0x0c -H

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): 100 ms
        Idle Transition Power State   (ITPS): 3
        .................
        Entry[ 1]
        .................
        Idle Time Prior to Transition (ITPT): 100 ms
        Idle Transition Power State   (ITPS): 3
        .................
        Entry[ 2]
        .................
        Idle Time Prior to Transition (ITPT): 100 ms
        Idle Transition Power State   (ITPS): 3
        .................
        Entry[ 3]
        .................
        Idle Time Prior to Transition (ITPT): 2000 ms
        Idle Transition Power State   (ITPS): 4
❯ sudo nvme get-feature /dev/nvme0 -f 2 -H

get-feature:0x02 (Power Management), Current value:00000000
        Workload Hint (WH): 0 - No Workload
        Power State   (PS): 0

I wonder from the kernel driver perspective if there should be transitions programmed for the operational states too. If there are no latency limitations to swap states, shouldn’t the drive be idling in PS2? Might be worth raising this with the NVME mailing list to find out more of their perspective.

1 Like

Oh never mind. the idle power is identical. It’s just the “bursty” power can go higher.

ps      0 : mp:4.70W operational enlat:0 exlat:0 rrt:0 rrl:0
            rwt:0 rwl:0 idle_power:0.3000W active_power:4.30W
            active_power_workload:80K 128KiB SW
ps      1 : mp:3.00W operational enlat:0 exlat:0 rrt:0 rrl:0
            rwt:0 rwl:0 idle_power:0.3000W active_power:3.00W
            active_power_workload:80K 128KiB SW
ps      2 : mp:2.20W operational enlat:0 exlat:0 rrt:0 rrl:0
            rwt:0 rwl:0 idle_power:0.3000W active_power:2.00W
            active_power_workload:80K 128KiB SW
ps      3 : mp:0.0150W non-operational enlat:1500 exlat:2500 rrt:3 rrl:3
            rwt:3 rwl:3 idle_power:0.0150W active_power:-
            active_power_workload:-
ps      4 : mp:0.0050W non-operational enlat:10000 exlat:6000 rrt:4 rrl:4
            rwt:4 rwl:4 idle_power:0.0050W active_power:-
            active_power_workload:-
ps      5 : mp:0.0033W non-operational enlat:176000 exlat:25000 rrt:5 rrl:5
            rwt:5 rwl:5 idle_power:0.0033W active_power:-
            active_power_workload:-