LINUX.ORG.RU

Шайтан с CPU Pkg States

 , ,


0

2

Имеются два ноутбука.

  1. X1 Carbon Gen 8
  2. X1 Yoga Gen 4

На одинаковом железе. Из всех различий: тачскрин у йоги, у карбона вайфай AX201, а у Йоги 9560, да дисплеи разных ревизий одной и той же модели.

У обоих i5-10210U, 8гиг памяти, 256 гиг nvme (разных моделей).

Установлены идентичные Arch Linux с Гномом, идентичный набор софта и всё такое прочее.

У обоих Powertop c auto-tune и power-profiles-daemon. У обоих на i915 включены PSR,DC и всё что там принято, тако же и с iwlwifi.

Так вот, Йога ни под каким соусом не хочет ронять Pkg в состояние PC10, минимум, что может - PC8.

Карбон же исправно тушит package до состояния PC10 спустя минуту-полторы после старта системы.

Йоге после старта требуется 10 минут чтоб достичь минимума потребления в 2.6Вт, а карбон падает до минимум в 2.2Вт спустя полторы-две минуты (на этом тесте просто логин в сессию и ждать, яркость экрана ~20%).

Я на йоге перепробовал уже наверное всё что нашёл в сети:

  • PCIe ASPM
  • LTR
  • отключение девайсов в BIOS вплоть то «отключение всего, что можно»
  • nowatchdog

Судя по powertop, никто у йоги не гадит прерываниями, поведение по devices stats одинаковое с карбоном.

Как результат, йога подъедает батарею (они тоже у них обоих одинаковые вплоть до форм-фактора) заметно быстрее карбона.

Из дополнительного странного: на йоге можно делать андервольт утилитой intel-undervolt, а у карбона - нельзя, хотя процессоры одинаковые.

Остаётся грешить на кривой БИОС или EC у йоги, ибо они таки, очевидно, не те, что у карбона.

Такие дела. Особо не рассчитываю на помощь, но вдруг? А?



Последнее исправление: kixx09 (всего исправлений: 1)
Ответ на: комментарий от sparkie

Может, конечно, и в ней дело. Но она впаяна, зараза.

А отключение методом rfkill никак не меняет ситуацию. Равно как и отключение wifi в биосе.

Еще я пробовал разные дистры (у них могут же быть ядра со своими патчами), пробовал логин в консоль вместо графического - ничо не меняет картину.

kixx09
() автор топика
Последнее исправление: kixx09 (всего исправлений: 2)
Ответ на: комментарий от vbr

Увы, BIOS давно обновлен на последний доступный из fwupdmgr (однако, такой версии почему-то нет на сайте Lenovo, что достаточно странно).

Прогнал тест

S0ixSelftestTool/s0ix-selftest-tool.sh -s

на обеих машинах, отключив, как сказано в доке Secure Boot, и включил режим Sleep в BIOS - Windows 10.

Вывод на обеих машинах одинаковый:

root@x1y4 ~# S0ixSelftestTool/s0ix-selftest-tool.sh -s

---Check S2idle path S0ix Residency---:

The system OS Kernel version is:
Linux x1y4 6.15.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 10 Jul 2025 17:10:18 +0000 x86_64 GNU/Linux

---Check whether your system supports S0ix or not---:

Low Power S0 Idle is:1
Your system supports low power S0 idle capability.



---Check whether intel_pmc_core sysfs files exit---:

The pmc_core debug sysfs files are OK on your system.



---Judge PC10, S0ix residency available status---:
cat: /sys/kernel/debug/pmc_core/substate_residencies: No such file or directory
grep: /sys/kernel/debug/pmc_core/substate_residencies: No such file or directory
Test system does not support S0ix.y substate

The system failed to place S2idle entry command by turbostat,     
please check if the suspend is failed or turbostat tool version is old     
e.g. did you make turbostat tool executable or separately run S2idle command:     
rtcwake -m freeze -s 15

Если запустить на Йоге упомянутую в логе команду:

rtcwake -m freeze -s 15

то счетчики PC9 и PC10 перестают быть нулевыми, но далее все счетчики Pkg C states не меняются никогда, включая даже PC2.

kixx09
() автор топика
Последнее исправление: kixx09 (всего исправлений: 2)

Возможно, я нашёл аномалию в i915.

Если запустить оба ноутбука, залогиниться в гном и оставить так минут на 5-10, то на карбоне графоний переходит в состояния DC5 и DC6:

root@x1c8 ~# cat /sys/kernel/debug/dri/1/i915_dmc_info
DMC initialized: yes
fw loaded: yes
path: i915/kbl_dmc_ver1_04.bin
Pipe A fw needed: no
Pipe A fw loaded: no
Pipe B fw needed: no
Pipe B fw loaded: no
version: 1.4
DC3 -> DC5 count: 33247
DC5 -> DC6 count: 32933
program base: 0x09004040
ssp base: 0x00002fc0
htp: 0x00b40068

а на йоге не переходит ни в DC5, ни в DC6:

root@x1y4 ~# cat /sys/kernel/debug/dri/1/i915_dmc_info
DMC initialized: yes
fw loaded: yes
path: i915/kbl_dmc_ver1_04.bin
Pipe A fw needed: no
Pipe A fw loaded: no
Pipe B fw needed: no
Pipe B fw loaded: no
version: 1.4
DC3 -> DC5 count: 0
DC5 -> DC6 count: 0
program base: 0x09004040
ssp base: 0x00002fc0
htp: 0x00b40068

Хотя оба товарища запущены с одинаковыми опциями i915:

options i915 disable_power_well=1 enable_fbc=1 enable_psr=2 enable_dc=4 enable_guc=2
kixx09
() автор топика
Ответ на: комментарий от kixx09

посмотри в /sys/kernel/debug/dri включился ли у тебя вообще PSR и какой о там - 1 или 2. Файлик i915_psr_status. Может у йоги ревизия дисплея кривая и PSR не включается, или включается PSR1 вместо PSR2.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Посмотрел и вот что увидел.

Файла /sys/kernel/debug/dri/1/i915_psr_status нет, есть файл /sys/kernel/debug/dri/1/i915_edp_psr_status - у обоих.

Йога показывает вот так:

root@x1y4 ~# cat /sys/kernel/debug/dri/1/i915_edp_psr_status
Sink support: PSR = yes [0x01], Panel Replay = no, Panel Replay Selective Update = no
PSR mode: PSR1 enabled
Source PSR/PanelReplay ctl: enabled [0x89f00c06]
Source PSR/PanelReplay status: SRDENT [0x480e0006]
Busy frontbuffer bits: 0x00000000
Performance counter: 214122

А карбон вот так:

root@x1c5 ~# cat /sys/kernel/debug/dri/1/i915_edp_psr_status
Sink support: PSR = yes [0x01], Panel Replay = no, Panel Replay Selective Update = no
PSR mode: PSR1 enabled
Source PSR/PanelReplay ctl: enabled [0x81f00c06]
Source PSR/PanelReplay status: SRDENT [0x40010000]
Busy frontbuffer bits: 0x00000000
Performance counter: 0

Т.е. оба одинаково работают, но у Карбона Performance counter постоянно сбрасывается на 0 (иногда можно поймать, чтоб показывало 10 или 15), а у Йоги этот счетчик хреначит без сбросов.

Дисплеи:

  • У карбона - B140HAN05.7
  • У йоги - B140HAN05.8
kixx09
() автор топика
Последнее исправление: kixx09 (всего исправлений: 2)
Ответ на: комментарий от kixx09

a psr_sink_status что говорит? Похоже что у йоги таки бажная реализация PSR и оно хоть и вроде включено но по факту не работает или выскакивает из сберегающего состояния слишком часто рано и активно.

еще можно в строку ядра положить drm.debug=0xe и после перезагрузки посмотреть не лезут ли в йоге какие-то ошибки.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Я еще заметил, что если на йоге дисплей отключается (я не знаю как его выключить из консоли, выставление 0 в brightness не делает то, что надо), а я проверял так - если в окне GDM логина не вводить пароль N минут, то ноут прям совсем тушит дисплей, то нужные режимы проца PC9/PC10 и режимы видео DC5/DC6 - появляются.

Да, жопа в том, что на карбоне эти режимы работают при включенном мониторе.

Я наверное, могу сдёрнуть EDID с карбоновского дисплея и вкорячить в йогу, но в EDID-е ли дело.. Что-то я сомневаюсь.

kixx09
() автор топика
Ответ на: комментарий от kixx09

Ну в общем да - если железо бажное то тут уже…

Попробуй ему вот такое задать - во времена Gen10-11 у меня эти параметры были.

i915.enable_fbc=0 i915.enable_psr=2 i915.mitigations=off i915.disable_power_well=1 i915.enable_dc=4 i915.enable_guc=3

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Параметры вот эти я уже все испрововал.

  • enable_fdc тестил и с 0 и с 1
  • guc=3 моё железо не понимает и обижается в dmesg
  • mitigations=off стоит, я забыл упомянуть выше
  • ну и psr=2 и dc=4 стоят уже

Я бы мог эту йогу скинуть на ебее, он мне достался неприлично дёшево, да взять другой. Но тут я не уверен, это у всей их линейки x1 yoga gen 4 такая засада, или у этого конкретного экземпляра.

Ибо если у всей - то надо совсем другую модель, ну хотя бы gen 3 или gen 5.

С другой стороны - это для жены ноут, ютуб смотреть да в «скайпах» видеочатиться. А ютуб эта йога на полной батарее часа 4-5 вывезет даже и с кривым PSR (ну если отключить ютубное AV1).

Я его вообще взял только из-за йоговости (ну что складывается экран на 360) и из-за корпуса, т.к. на карбоне пальцежыр оттирать невесело. А тут смотрю - йоу, плафторма как в моём карбоне, я там всё вылизал давно, щас накачу и вперде. Да ещё и за ~200usd и на ём муха не сидела, в состоянии нового.

kixx09
() автор топика
Последнее исправление: kixx09 (всего исправлений: 1)
Ответ на: комментарий от kixx09

очень важная штука disable_power_well=1

Ну и наверное обновить фирмварь и ядро до самого свежего.

Но скорее всего не поможет. У меня на современной железке беда что чтоит подключить bluetooth девайс - вместо PC10 остается только PC1. Если вместо bt мышки обычная USB - то PC3. Поэтому я честно говоря подзабил на это, тем более при работе за компом мало шансов что оно останется в PC10 на какое-то вменяемое время. Оно получается прияно конечно - наводтшь мышу на иконку батареи в панели и оно тебе так - осталось еще 12 часов, вау. Но вот почему-то через 6 часов надо срочно искать провод.

Qui-Gon ★★★★★
()
Ответ на: комментарий от kixx09

С другой стороны - это для жены ноут, ютуб смотреть да в «скайпах» видеочатиться. А ютуб эта йога на полной батарее часа 4-5 вывезет даже и с кривым PSR (ну если отключить ютубное AV1).

При просмотре ютуба тебе похрен на PSR. PSR работает на статической картинке - когда тескт читаешь или статический сайт. На это время показа статики глушится диспоейный движок. PSR1 начинает рисовать при малейшем изменении на экране, PSR2 умеет выделать локализованные области и «перерисовывать» не весь экран а только квадратик вокруг изменения. Но у тебя PSR1.

По ютубу - 10Gen не умеет в аппаратный AV1. Именно под ютуб желательно сапгрейдиться до gen11 tigerlake - он уже умеет. Так что в плане ютубу и видеочатов переход на 1 поколение стал очень значительным, а вот дальше пошел сплошной геморрой с little-big и все эти 12-13-14 поколения то еще шайзе. Хорошо получился lunarlake и более-менее терпимо arrowlake - но это уже другой бюджет и при просмотре ютуба толку с этого ноль.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Верно, при активном мельтешении PSR идёт лесом, я не учёл. А для ютуба AV1 выключается просто, или прям в аккаунте ютуба, или в настройках браузера, в лисе так вообще элементарно вырубить. Тогда ютуб начинает отдавать в VP9. А можно и VP9 рубануть, как минимум в фаерфоксе, и тогда ютуб отдаёт H264.

Возвращаясь к сути - получается вердикт такой:

На синкпаде x1 yoga gen 4 модельной серии 20SA с камнем и дисплеем как у меня - кривой PSR, либо кривое управление питание GPU, или оба сразу, и не лечится ничем. Шоб люди знали, да.

Я еще заброшу кляузу в ленову и в их LVFS/FWUPD гитхаб, но надежды мало.

kixx09
() автор топика
Последнее исправление: kixx09 (всего исправлений: 1)