Skip to content

NVME stromverbrauch mainline kernel, APST

Ungelöst Probleme?
  • halli hallo,
    hat jemand schon mal versucht, den stromverbrauch der nvme zu reduzieren? falls ja und erfolgreich, wie könnte das aussehen?

    mein board komplett inkl pin64 standard nvme karte und einer wd black 250
    mit 4.20.6. Verbrauch: ca. 7,7W ca.
    mit ayufan 4.4 irgendwas: 5,9W ca.

    letzteres ist für mich aber keine option.
    Zum mainline gibt es einige informationen, stichwort apst und nvme_core.default_ps_max_latency_us. Die gab es im 4.4er noch nicht. Daher kann man das mit dem apst dort nicht auch ausprobieren, zum vergleich.

    Die nvme bietet wie folgt an:

    nvme id-ctrl /dev/nvme0
    
    ps    0 : mp:5.00W operational enlat:0 exlat:0 rrt:0 rrl:0
              rwt:0 rwl:0 idle_power:- active_power:-
    ps    1 : mp:3.50W operational enlat:0 exlat:0 rrt:1 rrl:1
              rwt:1 rwl:1 idle_power:- active_power:-
    ps    2 : mp:3.00W operational enlat:0 exlat:0 rrt:2 rrl:2
              rwt:2 rwl:2 idle_power:- active_power:-
    ps    3 : mp:0.0700W non-operational enlat:4000 exlat:10000 rrt:3 rrl:3
              rwt:3 rwl:3 idle_power:- active_power:-
    ps    4 : mp:0.0025W non-operational enlat:4000 exlat:45000 rrt:4 rrl:4
              rwt:4 rwl:4 idle_power:- active_power:-
    
    

    Sie idle-d aber anscheinend immer im ps1 rum, das könnte dann auch passen da das board allein so 4W nimmt. Und 0,07W hören sich da doch verlockend an.

    nvme get-feature -f 0x0c /dev/nvme0 -H
    
    get-feature:0xc (Autonomous Power State Transition), Current value:0x000001
    	Autonomous Power State Transition Enable (APSTE): Enabled
    	Auto PST Entries	.................
    	Entry[ 0]   
    	.................
    	Idle Time Prior to Transition (ITPT): 700 ms
    	Idle Transition Power State   (ITPS): 3
    	.................
    	Entry[ 1]   
    	.................
    	Idle Time Prior to Transition (ITPT): 700 ms
    	Idle Transition Power State   (ITPS): 3
    	.................
    	Entry[ 2]   
    	.................
    	Idle Time Prior to Transition (ITPT): 700 ms
    	Idle Transition Power State   (ITPS): 3
    
    

    Kernel boot flag hab ich wie gesagt schon gesetzt und verschiedene werte probiert plus weitere module parameter vom nvme_core. Alles nach mehreren stunden bislang ohne erfolg.

    Dank vorab
    gruß

  • Hallo @kosmonaut-pirx ,

    interessant 😉

    Ok, dann mal los.

    SYS

    • ROCKPro64 v2.1 2GB RAM
    • PCIe NVMe SSD 960 EVO
    • 16 GB SD-Karte

    System ist auf der SD-Karte, NVMe SSD nur gemountet. System ohne Last.

    4.4

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 #1 SMP Mon Oct 22 20:59:41 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Stromverbrauch: 3,62 Watt

    Da dich 4.4 nicht interessiert aktualisiere ich den jetzt auch nicht.

    4.20

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.20.0-1083-ayufan-g686e1f1aa461 #ayufan SMP PREEMPT Sun Dec 30 13:42:26 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Stromverbrauch: 3,5 Watt

    nvme id-ctrl /dev/nvme0
    
    ps    0 : mp:6.04W operational enlat:0 exlat:0 rrt:0 rrl:0
              rwt:0 rwl:0 idle_power:- active_power:-
    ps    1 : mp:5.09W operational enlat:0 exlat:0 rrt:1 rrl:1
              rwt:1 rwl:1 idle_power:- active_power:-
    ps    2 : mp:4.08W operational enlat:0 exlat:0 rrt:2 rrl:2
              rwt:2 rwl:2 idle_power:- active_power:-
    ps    3 : mp:0.0400W non-operational enlat:210 exlat:1500 rrt:3 rrl:3
              rwt:3 rwl:3 idle_power:- active_power:-
    ps    4 : mp:0.0050W non-operational enlat:2200 exlat:6000 rrt:4 rrl:4
              rwt:4 rwl:4 idle_power:- active_power:-
    

    Und der andere Befehl von dir

    rock64@rockpro64:~$ sudo nvme get-feature -f 0x0c /dev/nvme0 -H
    get-feature:0xc (Autonomous Power State Transition), Current value:0x000001
    	Autonomous Power State Transition Enable (APSTE): Enabled
    	Auto PST Entries	.................
    	Entry[ 0]   
    	.................
    	Idle Time Prior to Transition (ITPT): 86 ms
    	Idle Transition Power State   (ITPS): 3
    	.................
    	Entry[ 1]   
    	.................
    	Idle Time Prior to Transition (ITPT): 86 ms
    	Idle Transition Power State   (ITPS): 3
    	.................
    	Entry[ 2]   
    	.................
    	Idle Time Prior to Transition (ITPT): 86 ms
    	Idle Transition Power State   (ITPS): 3
    	.................
    	Entry[ 3]   
    	.................
    	Idle Time Prior to Transition (ITPT): 410 ms
    	Idle Transition Power State   (ITPS): 4
    	.................
    	Entry[ 4]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[ 5]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[ 6]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[ 7]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[ 8]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[ 9]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[10]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[11]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[12]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[13]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[14]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[15]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[16]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[17]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[18]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[19]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[20]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[21]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[22]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[23]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[24]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[25]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[26]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[27]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[28]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[29]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[30]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    	.................
    	Entry[31]   
    	.................
    	Idle Time Prior to Transition (ITPT): 0 ms
    	Idle Transition Power State   (ITPS): 0
    

    Ob dir das hilf, weiß ich nicht. Da ich denke, das du dich mit dem Thema beschäftigt hast, hier was für dich zum Vergleichen. Vielleicht hilft es Dir!

    Als Hinweis an andere Leser, für den Befehl nvme gibt man vorher folgendes ein

    sudo apt install nvme-cli
    
  • halli hallo,
    danke für die vergleichswerte, das ist schon mal eine hausnummer. die derzeit leider schwer zu schlagen ist hier.

    hab weiter gesucht:
    -mein system war mit wlan-stick (so ein Netgear A6210, Mediatek 7612 oder so, alles recht neu im Kernel) nimmt mal eben 2W. Huch.
    -das ethernet begnügt sich ca. mit 0,1W, wenn verbunden
    -man kann im Kernel noch weiter an den pcie-strom-spar-einstellungen drehen (standard: vom Bios, PowerSave, PowerSuperSave, "Vollgas"). Vom Bios war immer erhöht vom Verbrauch als die Power-Modi
    -Usb-C port-extender testweise rangeklemmt, 0,2W ohne was dort dran

    für die tests habe ich den WlanStick raus. und die Werte mit verschiedenen nvme_core.default_ps_max_latency_us probiert:

    # 200: W, ohne wlan stick 5,7W
    # 5500: W, ohne wlan stick 5,7W
    # 9000: 7,6W, ohne wlan stick 5,7W
    # 10000: 6,5W, ohne wlan stick 4,7W
    # 11000: 6,6W, ohne wlan stick power super save 4,7W, bios ohne power super save 5,7W, nur powersave 4,7W
    # 12000: 6,7W, ohne wlan stick 4,7W
    # 14000: W, ohne wlan stick 4,7W
    # 15000: W, ohne wlan stick 4,7W
    # 42000: W, ohne wlan stick 4,7W
    # 44000: W, ohne wlan stick 4,7W
    # 45000: W, ohne wlan stick 5,0W
    # 50000: W, ohne wlan stick 5,0W, nur powersave 5,0W
    

    na ich lass wohl den wohltuend klingenden PowerSuperSave dauerhaft laufen

    ist ein wenig seltsam, warum über 45000 latenz wieder mehr auf der Stromleitung drauf ist.
    vielleicht werfe ich auch noch mal andere werte für nvme_core parameter an, aber große erwartungen bestehen nicht mehr. So 7W mit dem Wlan für hostapd ist aktuell auch einigermaßen akzeptabel für mich. 5W wären schick, aber ein andernmal vielleicht.

    Ach ja, kernel 4.20.7 ist released worden. Das Changelog gibt aber für nicht so viel her für das gerät. Vielleicht was mit pci, auf arm allerdings. Bischen was arm64, nichts großes denke ich so nach den quer lesen.

    Soweit
    gruß

  • falls jemand das otf (on-the-fly) ausprobieren möchte und sysfs an hat (heißt so glaub ich, ist aber default vermutlich): mit

    /sys/class/nvme/nvme0/power/pm_qos_latency_tolerance_us

    herum spielen. Wert auf 0 schreiben, dann den Wert der latenz. Siehe unten. Das beispiel unten von mir zeigt bei für mein system bspw auch den grenzwert (10000, aus dem p3 exlat, obwohl das angeblich nicht so sein sollte). bei 9999 geht das system 1W hoch, bei 10000 runter

    ps    0 : mp:5.00W operational enlat:0 exlat:0 rrt:0 rrl:0
              rwt:0 rwl:0 idle_power:- active_power:-
    ps    1 : mp:3.50W operational enlat:0 exlat:0 rrt:1 rrl:1
              rwt:1 rwl:1 idle_power:- active_power:-
    ps    2 : mp:3.00W operational enlat:0 exlat:0 rrt:2 rrl:2
              rwt:2 rwl:2 idle_power:- active_power:-
    ps    3 : mp:0.0700W non-operational enlat:4000 exlat:10000 rrt:3 rrl:3
              rwt:3 rwl:3 idle_power:- active_power:-
    ps    4 : mp:0.0025W non-operational enlat:4000 exlat:45000 rrt:4 rrl:4
              rwt:4 rwl:4 idle_power:- active_power:-
    
    echo "0" > /sys/class/nvme/nvme0/power/pm_qos_latency_tolerance_us
    echo "9999" > /sys/class/nvme/nvme0/power/pm_qos_latency_tolerance_us
    echo "0" > /sys/class/nvme/nvme0/power/pm_qos_latency_tolerance_us
    echo "10000" > /sys/class/nvme/nvme0/power/pm_qos_latency_tolerance_us
    

  • RockPro64: Raid fehlt nach Absturz

    Gelöst Probleme?
    23
    0 Stimmen
    23 Beiträge
    280 Aufrufe
    R

    @FrankM
    Lieber Frank!
    Vielen Dank für deine Geduld! War ein echter Segen für mich!
    Lösung war, wie du vorgeschlagen hast: Kaputte Platte raus, neustarten, alles da!
    Was für eine Erleichterung.
    Jetzt mach ich noch ne neue HDD rein, repariere das Raid; und fertig. Hoffentlich für die nächsten Jahre.

    Vielen, vielen Dank!

  • RockPro64 Netzwerkprobleme

    Ungelöst Probleme?
    11
    0 Stimmen
    11 Beiträge
    200 Aufrufe
    FrankMF

    @EricG Ja, das hatte ich schon fast bergessen. Ich nutze zur Installation dann einen USB-to-LAN Adapter. Danach geht eth0, wenn man sie konfiguriert. Aber das hast Du ja sicherlich auch schon gelesen.

    Ich sollte das evt. mal wieder testen 🤔

  • RockPro64 als Backup Server

    Ungelöst Probleme?
    5
    1 Stimmen
    5 Beiträge
    307 Aufrufe
    T

    @mabs sagte in RockPro64 als Backup Server:

    Ich versteh nicht wie der PCI-E<=>NVMe Adapter im Odroid H2+ laufen soll

    Er sprach vom JMB585 im M.2-Format. 2 x SATA vom Intel-SoC plus 5 vom JMB585 macht dann 7 SATA-Anschlüsse. Der JMB585 im H2+ ist natürlich auch ausgebremst, weil Intels Gemini Lake (Refresh) auch nur PCIe Gen2 kann und so die 5 SATA-Ports des JMB585 nur hinter zwei Gen2 Lanes hängen.

  • 1 Stimmen
    7 Beiträge
    727 Aufrufe
    FrankMF

    Freut mich, das es jetzt so problemlos klappt. Das ist echt immer ein Problem mit Linux und Hardware. Es ist zwar besser geworden aber noch nicht optimal. Und auf den kleinen Platinen ist das auch noch eine ganz andere Sache.

    Ich kann die auch heute noch immer wieder empfehlen. Läuft und läuft....

    root@NASrp64:~# uptime 18:58:29 up 66 days, 2:54, 1 user, load average: 0,00, 0,00, 0,00

    Mein NAS läuft 24/7

    Viel Spaß damit!

  • 0 Stimmen
    6 Beiträge
    271 Aufrufe
    FrankMF

    Mir fällt da leider auch nicht mehr viel zu ein. Die Karte ist ja auch schon ein paar Tage alt. Vielleicht würde ein BIOS Update der Karte helfen!??

    Hast du einen Rechner, wo du die Karte mal reinstecken kannst um zu schauen, ob sie funktioniert?

  • hdparm / SATA Platten spindown und Energiemanagement

    Gelöst Probleme?
    4
    0 Stimmen
    4 Beiträge
    328 Aufrufe
    FrankMF

    Sorry, das Wissen hatte ich vorausgesetzt. Aber schön, das es funktioniert.

    Dann viel Spaß mit deinem NAS 👍

  • 0 Stimmen
    27 Beiträge
    2k Aufrufe
    FrankMF

    Danke für die Rückmeldung.

    Mein NAS läuft wie gesagt schon relativ lange sehr stabil. Und es macht auch was 🙂 Es sichert z.B. dieses Forum und viele andere Seiten regelmäßig. Ansonsten dient es als mein Datengrab. Nix besonderes..

    Wenn Du nicht so komplizierte Dinge fragst, darfst du gerne neue Threads eröffnen 🙂

  • FTDI Support (ayufan Kernel 5.0)

    Ungelöst Probleme?
    8
    0 Stimmen
    8 Beiträge
    540 Aufrufe
    K

    Hi, leider habe ich bisher keine Antwort von Kamil erhalten. So habe ich selbst mal einen Kernel kompiliert. Als Vorlage habe ich den Ayufan 5.3 rc4 1118 genommen. Also gleiche config nur zusätzlich den FTDI und den CH341 (Arduino clones) Treiber hinzugefügt. Könnt ihr ja mal bei Lust und Laune testen. Für meine Zwecke funktioniert er gut.
    Gruss
    https://drive.google.com/file/d/1kJarihL7bAqN9y6tK-m1V4zHCSEiEWtf/view?usp=sharing