Update 2:
The cause of the problem is found. It’s the smartcard reader service, pcscd
. At boot up, it pegs the reader to 100% use.
It only takes a restart of the socket with sudo systemctl restart pcscd.socket
to resume the normal behaviour and allow the system to go to C10.
Lenovo is also now looking into possible issues with the firmware of the X13 Yoga Gen3.
This issue has drawn the attention of everyone involved, Fedora/RedHat, the pcscd creator and Lenovo. Amazing job.
Obviously if your X13 Yoga Gen3 has no smartcard reader, this is not going to be an issue.
I wonder if other Thinkpads (Alder Lake or later) with a smartcard reader may have the same problem.
Update:
Many thanks to Hans De Goede for his amazing support and help in finding a work around this, and all that during a weekend! Many many thanks, I’m grateful.
More here: 2264606 – Fedora only allows up to C3 PKG C-states. All other distros on same hardware allow C10
This is more complex than one thought.
The problem only occurs if your X13y Gen 3 has a Smartcard reader and ONLY if you use Gnome.
Gnome pegs the Smartcard reader and the Smartcard reader then hods the CPU interrupts and thus prevents it from reaching anything deeper than C3.
Currently the only solution is to (physically) disable the Smartcard reader (disconnect it from the mainboard).
This is a problem unique to Fedora, Gnome and the SmartCard reader of the X13Yoga Gen3.
As soon as I identify which system to file a bug under, I will do and update again.
Many thanks for all who tried to help, it is very much appreciated.
Original Post
I am trying to figure this out for sometime and I’m posting again in hope anyone can help.
This is on a ThinkPad X13 Yoga Gen 3, i7-1255u.
We got 10 of these laptops, all setup with F39, and we are now facing this issue, Fedora won’t let the CPU (pkg) reach deeper C-states, with a massive effect on battery life. On Ubuntu we get 8hrs, on Fedora only 5 with similar load.
In my testing I have done clean installs of F38, F39 and Rawhide, all with the same issue: The CPU (pkg) goes up to C3. That’s it.
Fedora 39:
F38 (kernel 6.2.9) and Rawhide (F41, kernel 6.8.0) are the same, only C3.
I have tried Ubuntu 23.10, EndeavourOS (latest ISO), OpenSuse TW, Debian Testing, they all go to C10.
Here are some screenshots:
Ubuntu:
EndeavourOS:
Also tested PopOS, Arch, Manjaro and Garunda, all reach C10. Nobara (Fedora based) is also limited to C3. No screenshots for these.
It must be something in the kernel that Fedora uses, but there are 1000s of options in the kernel, and a diff between Fedora’s config and the other distros’ kernels is impossible to yield something I can work with.
I have looked onto cpupower idle-info
and the output of turbostat
and as far as I can tell, all distros produce the same. There is no difference that I can see in a “setting”.
Intel graphics are in RC6 mode for all distros too.
Any input is very welcome. Many thanks.
P.S. Interestingly enough, when connected to a TB3 dock, which is known to limit pkg C-states, all other distros are limited to C3, Fedora to C2.
I have posted this on reddit, here: Reddit
I have also filed a bug here: https://bugzilla.redhat.com/show_bug.cgi?id=2264606