I5 Doesn't go to C states below C3 KDE Neon

I did all my testing now out of the console to exclude Plasma and stuff.

I manually started TLP and powertop --auto-tune.
Powertop showed all good.

S0ixSelftestTool still failed and I’ve noticed that it shows that the drive is in L0 only when I run it for the first time. After that it always shows L1.2.

atop shows that everything is fine. In Terminal everything is usually @ 0, with atop being at the top of the list.

CPU still stays @ C3 and C6 and does not go to C7, C8, C9, or C10.

I am gonna download the newest ISO of KDE Neon and Ubuntu and boot them from USB and see what happens there.

Thx for help @jubnut

Update:

On USB boot everything works fine until the device goes to sleep, after awakening, it is unable to go below C3 and that’s regardless of PCIE settings, TLP, and powertop, while on SSD boot I am unable to make it below C3.

I really don’t want to distro hop or reinstall the system, but it seems that I have to install Neon on a separate drive, fix the problem after going to sleep, and then reinstall my main os, or distro hop.

The SSD can still cause problems even when running the OS from an USB stick (I confirmed this using S0ixSelftestTool on a Void Linux live USB).

The USB boot should give you the option of editing the kernel command line before booting (eg. on Ubuntu you can press ‘e’ on the boot menu). Then you can try adding nvme.noacpi=1 to the USB boot.

Did it print a message on failure?

It just says that “PC10 wasn’t achieved”, but neither of the states below C6 were achieved.

I was ignoring the BIOS update from 3.06 to 3.07 because their Change Log says that they mostly fixed some charging issues, but after the BIOS update I am getting the same results in USB boot and SSD boot and now S0ixSelftestTool clearly says that after awakening from sleep SSD is stuck in L1 (not L1.1 or L1.2).

I removed TLP, powertop, and set grub to default for testing purposes before, so now I will set those things up again and if it does not help then I will change the sleep mode or just replace it with hibernation.

I think it should be noted in the tutorial that BIOS 3.06 is fucked.

What is the make and model of the SSD?

WD SN580, bought with the laptop.

Update:
After BIOS update and setting nvme.noacpi=1 in grub, everything was perfect. CPU hit C8 and C10 after and before sleep, but I decided to install tlp and powertop and now I am getting this from S0ixSelftestTool:

The deeper CPU Package C-state is available after
PCI devices LTR ignore,please investigate the potential IP LTR issue.

Without LTR ignore it’s stuck again @ C3. (Yes, I set PCIE_something=powersupersave in TLP) Removing TLP and powertop didn’t fix it.

I have the same drive, it hits c10. I am running Manjaro Gnome and powertop. So the good news is that it should work. The bad news is that you’re still trying to determine what is preventing the system from hitting that state. Finally, this may not be relevant to your issue, but there is a firmware update for the drive - you have to use windows to update it.

Well, I got this, but either TLP or powertop fucked me.

Does anyone know what to do with this message from S0ixSelftestTool and how to fix it?:
The deeper CPU Package C-state is available after
PCI devices LTR ignore,please investigate the potential IP LTR issue.

This is a stupid piece of trash. Frame.work did really SCREWED UP. I don’t know whether any of the devs gonna see that, but I believe I have that stupid temporary audio codec and using it was a mistake!

It sounds bad, it doesn’t support energy-saving, and it creates tons of high pitch noise when you turn it off, and at the top of that, IT WAS CAUSING ALL THE ISSUES WITH CPU AND ENERGY STATES. As soon as I ignore LTR from that chip, the CPU starts working correctly, but the audio gets unbearably choppy.

I want that Realtek!

What the hell I am supposed to do now!

For those with the same problem:

xses@xses:~$ sudo cat /sys/kernel/debug/pmc_core/ltr_show

XHCI LTR: RAW: 0x8990 Non-Snoop(ns): 0 Snoop(ns): 409600

HD_AUDIO LTR: RAW: 0x883b Non-Snoop(ns): 0 Snoop(ns): 60416

sudo su
echo 9 > /sys/kernel/debug/pmc_core/ltr_ignore

I was just echoing one by one and I assume that 9 is HD_AUDIO, because it correlates with the chopines of the audio.

I’ve cheacked on the motherboard and yes, I’ve that fucking 92HD95B

To sum up for whoever in the future:

BIOS 3.06 is broken in some way
92HD95B is a piece of crap.

When the computer plays only a movie then audio is kinda fine, so when battery saving is needed then simply run this script to allow states, below C3:

#!/bin/bash
pkexec su -c "echo 9 > /sys/kernel/debug/pmc_core/ltr_ignore"

On AC it doesn’t matter anyway.
Power consumption went from ~12W to ~8W, which is fine since I have animated wallpaper, gen 4 SSD, and an HDMI expansion card.

I really want to see a decent audio amp in the expansion slot in the future.

1 Like

This is stupid. This codec sounds really bad so I am using PulseEffect just to equalize it, meanwhile, it supports 12 bands bi-quad hardware EQ. I want access to that, so I will not waste CPU for something that has hardware acceleration!

If any of frame.work’s engineers read that, please tell me how to poke bits into the register of that codec.

EVERYTHING I WROTE ABOVE IS NONSENSE

THIS IS VERY VERY VERY IMPORTANT:

I WOULD HAVE SAVED DAYS OF WORK IF I WOULD KNOW ABOUT THAT:

So apparently I was going completely backward and this is a solution:

https://wiki.archlinux.org/title/Power_management#PulseAudio

I just found out that the audio codec is fine, the CPU is fine and PulseAudio is a reason for all my troubles with audio and power saving. Because PulseAudio doesn’t go to sleep by default, it keeps the audio codec awake and the codec keeps the CPU in high C states, and all of that wastes ~6W of power.

But I was f* reverse engineering an issue. From CPU through codec to PulseAudio.

Looks like we have a ticket with you, I’ll meet you there.

In the meantime:

If you have specific feedback, feel free to post it - but do keep it civil.