[TRACKING] High Battery Drain During Suspend

The past few days, I’ve been experimenting with adding and removing two USB-A cards and switching between s2idle and deep sleep. I’m on a Framework 13 11th gen, 64 GB of RAM, BIOS 3.17, Fedora 37. I’ve been noting sleep and wake times and checking the battery percentage in the task bar. I added the nvme.noacpi=1 option at boot, dragged KDE’s “Power Profile” to “Power Save”, did nothing else to modify battery usage.

Roughly, assuming percentages are correct and my battery’s 55 Wh,

  • deep sleep with USB-A drains around 3.3% battery / hour, or 1.8 watts
  • deep sleep without USB-A drains around 0.95% battery / hour, or 0.5 watts
  • s2idle sleep with USB-A drains 1.8% battery / hour, or about 1 watt
  • s2idle sleep without USB-A drains 1.6% battery / hour, or 0.9 watts

With USB-A cards plugged in, I get lower power usage while sleeping with s2idle selected than with deep.

If I could somehow get around 0.5 watts/hour or less battery drain while in s2idle (it’s nice having the laptop come back up without a delay), or get maybe half that with deep sleep, leaving the USB-A ports in, I’d be pretty happy. Even 1% per hour is a noticeable loss overnight, nevermind if you leave your laptop the better part of a 24 hour period.

1 Like

Hmm. I will put this into my testing calendar.

  • Please list your boot parameters used when seeing this?
  • What tool are you using to track the wattage (asking as powertop is not that great, I recommend powerstat if you’re not already to compare the data.

Recently i got email from frame.work that there is new firmware released for DP modules and there are new HDMI modules in production with fixed powerdrain. Does it mean that this issues with powerdrain in sleep should be solved by that?

It will help with the drain from those modules, yes.

1 Like

My boot parameters are, from dmesg:

[ 0.000000] Command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.2.15-200.fc37.x86_64 root=UUID=f6df2103-a8db-456a-bc97-bdfb3a031302 ro rootflags=subvol=root rhgb quiet mem_sleep_default=s2idle nvme.noacpi=1

The tools I was using were KDE’s default battery indicator in the system tray and post-it notes :wink:

Those wattages are estimated averages, based on the battery percentage changes over time while I left the laptop asleep, usually for an 8ish hour period. Could be a ways off, since I’m assuming the percentages are right and I’m assuming 1% of the battery == 0.55 Wh, but I’d expect them to be representative relative to each other.

I could attempt a more rigorous approach if that’s useful, cycle the battery first to maybe calibrate it, invoke a tool or a script.

Your numbers are within margin of error with the rest of the community with the 11th gen. Any non-USB-C card seems to drain the battery.

I assume you’ve seen this:

and this:

Best case is with full usb-C cards only. Draining around 0.3w…but still rather far off from other competition of the same period (11th gen):

1 Like

Yeah, thanks. I might’ve overlooked the Windows thread… mainly was posting just to gently pile on and help this issue remain recognized as definitely still present and relevant. Over the course of months (for sure years), it’s very easy for intractable problems to slide farther and farther from the center of focus. It does sound like these issues can be addressed, albeit with difficulty.

That and I didn’t think a little repetition about USB-A cards in particular would hurt, vs. HDMI and DisplayPort, which I think have been worked around already. (And the s2idle thing is just weird, thought maybe I’d overlooked something there.)

1 Like

Has anyone noticed an improvement here recently? I’m using Archlinux with kernel version 6.3.1 and the s2idle sleep mode. All four of my USB modules are USB-C. It’s otherwise an OG Framework with a i7-1165G7 CPU. I haven’t done any firmware upgrades in a while. My BIOS version is 03.07.

I haven’t done any careful measurements yet, but it seems like suspending uses a lot less battery than it was previously just a few weeks ago. (Probably before a kernel upgrade.) I left it unplugged for several hours today. When I went back to it, I realized what I had done and figured my battery would be at 50-60%. But it was still at 98%.

I’ll try another more careful experiment tonight and see what happens. But I was just curious to see if anyone else noticed any improvements and what might have changed.

Yes, things have improved. I just redid some measurements and the situation is indeed better than a year ago:

Unfortunately, USB-A and HDMI cards still force a significant drain compared to just USB-C (I think @nrp thought BIOS 3.17 should have improved the USB-A situation, but I did not see that reflected in my test), but that should not be an issue for you.

Hah, well, I’d prefer to have my HDMI and USB-A modules in (with 2 USB-C modules), but I swapped them out precisely because of this issue. But assuming things got substantially better, I’ll take the win with 4 USB-C modules.

Well, bummer, my test seems to suggest that things are still not so great. I left my laptop in s2idle for about 11.5 hours last night. It was at 100% when I left it. When I opened it this morning, it was at 8%. So the battery drained approximately 8% per hour. Which is… just awful. I had 4 USB-C modules connected. And I did update the BIOS to 03.17 before running the test.

2 Likes

Just a reminder - deep over s2idle and removing unused expansion cards makes a difference. I usually have two used on my own laptops at once unless I am connected to a ton of stuff. And even then I am connected to power at that point because I am already anchored to external displays.

We’re also actively working to minimize power drain on DP and HDMI as well.

and

Measurements posted indicate that the difference between deep and s2idle is minimal, though, and possibly within the margin of error. Are you basing your reminder on specific hardware configurations where the difference is significant?

My main motivation to retest was to verify the claim that the USB-A problems had been ameliorated: Passifying the USB-A Card - #30 by nrp . While s2idle performance across the board does seem to have improved, it seems the “penalty” for having a USB-A plugged in hasn’t changed. This makes me think the improvements are due to improvements in the hardware support in the Linux kernel; not in the firmware updates.

I’ve managed to squeeze out a couple of hours with the switch (12th gen), but other factors will come into play.

Ah, fair point.

Thanks for the response and reminder.

Indeed. I used to use deep because it didn’t drain power as quickly (as I recall it). But it takes about 10 seconds to resume after I open my lid. For my usage patterns, I’d rather faster power drain than have to wait that long every time I open the lid.

When I did my test above, I had nothing except the power coord plugged into the laptop. The other 3 ports were just USB-C modules. Are you saying I should take those modules out too to improve power drain? As in, don’t have any modules except for the one used for charging plugged in?

1 Like

Yes, that’s just awful. I have greeted my laptop warm to the touch after suspension for a while at some occasions – but only when it was plugged in and I think when I plugged it in after suspending, so I try to avoid changing the power state of the system while suspended. So hopefully this was an accidental mishap? (little solice if you can’t identify with confidence what led to the bad performance, so that you can avoid it…)

While not awesome, yes, in my testing it has made some difference. But I think mileage will vary.

New kernel updates will hopefully also provide additional relief as we progress through this.

We’re also looking to tackle this at the expansion module level where possible. Appreciate the feedback and experiences thus far.

@anarcat did extensive testing on various configurations of modules and his findings indicate that the USB-C pass-through modules make no discernible difference. It would be interesting if you’d find otherwise, since they’re supposed to be just an extension cord, as far as I understand. (the penalties for plugging in stuff should also not be expected to be additive: the presence of a certain module apparently prevents certain hardware inside the laptop to go into a low-power state. Adding another module that would have the same effect doesn’t necessarily incur another penalty on top)

2 Likes

If you don’t mind longer wake times, add mem_sleep_default=deep to your kernel params to significantly save on battery life on Linux based systems.

1 Like

From my understanding, newer expansion cards were also supposed to help/fix this issue, or was that with just power draw in general?

I’m experiencing this suspend issue (inconsistently) on 13th-gen (with fedora 38), which in theory got the second gen expansion cards with it. I do have USB-A and HDMI slots.

Are these same issues confirmed on the v2 cards as well?