I’ve been quite happy with my Librem 14’s power usage in general; the battery lasts quite a long time (presumably helped by the free battery upgrade the company gave us). But there seems to be a surprising amount of power drain while the laptop is suspended. Has anyone else experienced this? Any advice or techniques for diagnosis?
Depends how much of power. My battery discharges few percent over night. No big deal, but it could be better.
There was problem with my L13 and RAM module. When I opened laptop after night long sleep the RAM was warm and about half of battery charge was gone. Changing the RAM module solved the issue. I tried the RAM in my L14 and it discharges fast too.
that very depends on amount of ram installed in the laptop.
problem of DRAM (Dynamic RAM) is a fact that memory cells behaving like capacitors - lose information over time due to auto discharge. In order to keep data in memory, memory controller need constantly refresh it’s content, to avoid data loss.
so more memory, more power usage, even when computer sleep.
Ah, interesing. So memory could be related? I have 1 16GB DDR4 memory chip. I will investigate.
In my case I changed the RAM for different brand, same size/frequency and it helped a lot.
Maybe the energy consumption of RAM during sleep could be tuned in some firmware. @nicole.faerber is it possible?
I put my L14 in suspend Friday end of working day (95% battery). Just opened it Monday morning, 14% left. So yes this is one of the major issues with the L14 next to the fan noise in my opinion (fan noise should be fixed with EC update soon).
Yeah, power drain from RAM is a problem and we can not do much to help there, I’m afraid. Self refresh of RAM is entered by a command to the RAM chips and from there on they do it on their own. And last time I checked there were no parameters to that command… So if you want to maximize your standby time then using only one SODIMM will reduce consumption and less GB will reduce it too.
apropos fan noise, there is separate thread when actually i proven, that it’s not an issue, but side efect of how Intel Turbo works on this CPU.
long story short: there is nothing to be done, as cpu at 4GHz gets hot , very fast, so fan need to speedup in order to cool it down.
Intel Turbo can overclock single core, or group of cores. but more cores you will load, less frequency you will get.
that can be counterintuitive but you can generate more temperature with single thread, than 6 thread.
Is there a way to double-check that it’s actually the RAM that is causing this power drain? I know the computer is sleeping, so ability to run diagnostics is limited.
No easy way. Actually, everything would be very complicated. When the device is asleep there is almost zero way to use software. On the hardware level measuring voltages is kind of easy, but current is hard. You need to cut open the power supply and introduce a measuring shunt resistance. And you probably need to do that for many different components.
So no, I’m afraid there is no way.
On the other hand there isn’t much running anymore when the device is asleep. We cut power through the EC to peripherals not in use anymore, like the web cam, the WiFi/BT M.2 slot, the Ethernet port etc. We have to keep up the power rails for the Intel CPU and the RAM of course. There is not much more we can do, I’m afraid. Or, well, there is one tiny bit where we (or someone interested) could save some mA, but I guess also only a few… During suspend to RAM the EC itself is also still running in regular operation mode. During sleep this is not necessary - keyboard scanning could be stopped, the EC could also be put into some kind of sleep state etc. But the EC is a pretty tiny microcontroller which will not draw a lot of current, other devices like the DDR4 draw magnitudes more even in sleep.
Thanks for the detailed response! Just to check, is this true for all versions of the firmware you shipped with the Librem 14? I haven’t been keeping up with the details of firmware versions/updates. (Of course I very much appreciate that it’s open, but hardware hacking is a level beyond what I can do.)
It’s honestly not a huge deal with my usage, just something I noticed.
With the speed of the memory could the EC dump the ram to memory/swap with DMA and reload it on wake?
Then the ram could be put to sleep.
That would be suspend to disk Linux can do that and yes, this would end any battery usage while in suspended state
But more seriously, the EC does not have access to pretty much any peripherals attached to the main Intel CPU, like RAM, SSD, etc. The maximum the EC can control is power to these components, i.e. switching them on or off, but that’s about everything.
Yes, so far. If someone wants to work on EC’s power saving that would be very much appreciated! And of course I/we would support that as good as we can. On a similar topic another still open optimization for the EC would be to implement interrupt driven peripheral drivers - right now everything is polled. Interrupt driven drivers would decrease latency and can also reduce power consumption - while waiting for interrupts the EC could enter a lower power state or some idle / wait state. This still has been a bit low on my priority list so far since there were (and are) more pressing things to do and the gain is comparably low… compared to e.g. not charging batteries or drawing too much current…
Just an FYI, to add to examples, I closed all apps, and just put the screen down. 10 hours later is lost 10%, from 66% to 56% battery charge. I have a single 16 GB RAM.
Given the discussion above, I wonder if the issue is the specific 16GB chip. I think everybody reporting this issue has had the same memory configuration?
No I had 32GB and now 2*32GB.
I have 64GB of RAM and I can confirm the laptop looses quite a lot of power when suspended. What I did to mitigate the issue is I suspend-then-hibernate, but configure hibernate to do hybrid sleep like 10m later. This way, suspend is immediate, resume is always immediate, but if I loose too much power and the laptop stops, it will resume from hibernation.
However, I’m wondering how Apple does it. Their laptops can keep power in sleep mode for weeks even with 64Gb of RAM.
I may be missing something thus it may be not so smart question, but can’t purism just change ram modules which is packed into Librem14 to something which cooperates better (I mean for new laptops, not sold yet)? It seems easier than adapting chips etc.