Created attachment 16835 [details] fedora pc state В продолжение https://bugzilla.altlinux.org/show_bug.cgi?id=51358 Воспроизводится на всех ядрах, включая новые. На альт не работает переход по пакетным состояниям процессора ниже C2, часто просто сидим в C0. (Не путать с обычными C-State, они работают, это именно HW Pkg States) Проверил на других дистрах. Там процессор проваливается ниже по данным powertop. На альт зависает на C0-C2 и всё. Приложу, как это выглядит на других дистрах в Live. Fedora и Endovour У федора вообще отлично улетает в PC-10 На эндевор больше сидит в PC-8, что тоже не плохо, но хуже PC10 для сберегайки. Это всё свежие образы на 3 сентября в live + установка powertop для показа, кроме альт тут установленная регулярка гнома. (возможно стоит проверить на Workstation, отпишусь, как проверю) Возможно, как побочный эффект, не уходит в глубокий сон. За ночь улетает порядка 30%, а не 3-5%, как на Fedora.
Created attachment 16836 [details] fedora watt
Created attachment 16837 [details] эндевор pc state
Created attachment 16838 [details] эндевор watt
Created attachment 16839 [details] альт pc state
Created attachment 16840 [details] альт watt
Created attachment 16841 [details] альт PCM
Сказать, что это ACPI не такая какая-то - тут на других дистрах работает даже в live. С энергосбережением есть вопросы изначально у меня с альтом. Ещё с macbook 2013 года. На энедвор тогда у меня доходил до конечного для него PC7, как в маке https://t.me/toxblh_linux/601 А вот на alt только до PC6 и никак ниже https://t.me/alt_linux/351946 ещё давно писал. Но баг не завёл, это да. У меня если что, есть статья сохранена с того сайта, что по первой ссылке в посте. Скину следующим вложением.
Created attachment 16842 [details] статья по ссылке в посте
Сокращу время чтения. Основное, что сделал человек в статье 1. Активация C-State - и это у нас сделано вроде как, судя по конфигурации. [X] Cpuidle Driver for Intel Processors (CONFIG_INTEL_IDLE) 2. Уменьшил частоту таймера с 1000Hz до 250Hz: Processor type and features ---> [*] Idle dynticks system (tickless idle) [*] High Resolution Timer Support [*] HPET Timer Support Timer frequency (250 HZ) --->
Скорее всего, у них какой-то софт управляет конфигурацией системы, который у нас не запущен. Например tuned-adm profile powersave, cpupower frequency-set -g powersave. Еще варианты, которыми не пользовался: tlp, auto-cpufreq, laptop-mode-tools, powertop --auto-tune.
Ну я как и прошлый таск. Попробую найти, что именно/ Чтобы не потерять хронологию, для себя даже и для истории. Может поможет при дублирующих в будущем так же. tlp пробовал уже. Не помогло. powertop тоже не помог. Я в ближайшую неделю-две попробую глубже копнуть, чтобы понять. Чего такое есть в Fedora, как в системе, которая лучше всего прям погружает ноут в PC10. И чего нет у нас. Там ещё есть нюанс, ну это чисто уже спортивный интерес. У меня же 2 ноута этот вот asus и macbook 2013 года. Возможно чисто специфика apple, но интересное - на macos бук, ведёт себя интересно. Что он прям ну очень старается работать на одном ядре всегда. Максимально убивая вторую "плитку" с PC7, что равна PC10 на новом - ядро полностью потушено с кешами. Ему ещё HT интела в этом помогает, условно живые 2 ядра(1 физ) только. Второе физ ядро там просыпается по большой необходимости. Отсюда волшебные цифры время жизни макбкуов. Это ещё на acer 5315 проверял в далёких 2010 годах. Что хакинтош жил на час больше в среднем, чем винда или линь. Вообщем пока можно на недельку забыть о баге. Я сам почитаю пока по теме :) Понакидываю сюда, чего нашёл
Отличный пост https://discussion.fedoraproject.org/t/fedora-only-allows-up-to-c3-pkg-c-states-all-other-distros-on-same-hardware-allow-c10/105270/14 https://bugzilla.redhat.com/show_bug.cgi?id=2264606#c8 помог понять, что NVMe не засыпает (Требует установки acpica) sudo ./s0ix-selftest-tool.sh -s The link power management state of PCIe bridge: 0000:00:06.0 is not expected. which is expected to be L1.1 or L1.2, or user would run this script again. The L1SubCap of the failed 0000:00:06.0 is: L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ The L1SubCtl1 of the failed 0000:00:06.0 is: L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1- Checking PCI Devices tree diagram: -[0000:00]-+-00.0 Intel Corporation Device 7d01 +-02.0 Intel Corporation Meteor Lake-P [Intel Arc Graphics] +-04.0 Intel Corporation Meteor Lake-P Dynamic Tuning Technology +-06.0-[01]----00.0 Micron Technology Inc 2400 NVMe SSD (DRAM-less)
Кстати схожий скрипт для amd https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py Источник https://discussion.fedoraproject.org/t/please-improve-the-s0ix-experience-under-linux/79113/2
Прошёл путь от просмотра USB устройств которые активны сейчас grep -rni "active" /sys/bus/usb/devices/*/power/runtime_status /sys/bus/usb/devices/1-9:1.0/power/runtime_status:1:active /sys/bus/usb/devices/1-9:1.2/power/runtime_status:1:active /sys/bus/usb/devices/1-9/power/runtime_status:1:active /sys/bus/usb/devices/usb1/power/runtime_status:1:active Смотрим, кто такие sudo lsusb -t /: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 009: Dev 002, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 009: Dev 002, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 009: Dev 002, If 2, Class=Video, Driver=uvcvideo, 480M |__ Port 009: Dev 002, If 3, Class=Video, Driver=uvcvideo, 480M |__ Port 009: Dev 002, If 4, Class=Application Specific Interface, Driver=[none], 480M |__ Port 010: Dev 003, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 010: Dev 003, If 1, Class=Wireless, Driver=btusb, 12M /: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 20000M/x2 /: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M /: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/3p, 20000M/x2 1 - 9 у нас прям ясно-понятно камера. Смотрим, кто сейчас использует её lsof /dev/video* lsof: WARNING: can't stat() vfat file system /boot/efi Output information may be incomplete. lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing Output information may be incomplete. lsof: WARNING: can't stat() fuse.portal file system /root/.cache/doc Output information may be incomplete. lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /root/.gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME wireplumb 3209 toxblh 50u CHR 81,0 0t0 933 /dev/video0 wireplumb 3209 toxblh 52u CHR 81,2 0t0 936 /dev/video2 Ну вот и попався. wireplumber Ситуация даже известная https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2669 И кажется это поправят в новой версии libcamera https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2669#note_2550125
mkdir -p ~/.config/wireplumber/wireplumber.conf.d && echo -e "wireplumber.profiles = {\n main = {\n monitor.libcamera = disabled\n }\n}" > ~/.config/wireplumber/wireplumber.conf.d/10-disable-camera.conf && systemctl --user restart wireplumber Выключаем мониторинг, делаем под user'ом. Радостная пустота тут grep -rni "active" /sys/bus/usb/devices/*/power/runtime_status -1W в powertop ... И всё ещё мы сидим в С2 и не глубже.
Created attachment 16845 [details] S0ix self test на un-def ядре. Из странного на ядре 6.11 при наличии https://git.altlinux.org/gears/k/kernel-image-6.11.git?p=kernel-image-6.11.git;a=blob;f=config;h=a42842e8cda2c166095ced736f21fd1879de7b8b;hb=HEAD#l8511 флага, пустой вывод zcat /proc/config.gz | grep CONFIG_INTEL_PMC_CORE И нет модуля в папках find /lib/modules/$(uname -r) -name 'intel_pmc_core*' Проверил в un-def, всё есть. Но PMC это часть. Нашёл, что есть CONFIG_SPI_INTEL_PCI флаг, которого у нас нет. Буду пробовать собрать с ним. Основная проблема у меня NVMe не засыпает и стопорит сон, но возможно не только его
Хотя сильно врядтли SPI флеш, как-то связан вообще с этим
CONFIG_INTEL_PMC_CORE=m верну при следующей сборке ядер, спасибо.
> верну при следующей сборке ядер А в какой момент оно пропадает. Я посмотрел на свою сборку и учитывая, что в config есть, в какой момент его удаляет? ---- У меня тут NPU есть. А он сидит на той же PCI шине где и NVMe. Решил глянуть, что за драйвера используются в fedora и нашлись драйвера, которых нет. 00:0a.0 Signal processing controller: Intel Corporation Device 7d0d (rev 01) Subsystem: ASUSTeK Computer Inc. Device 1a63 Flags: fast devsel, IOMMU group 7 Memory at 5020240000 (64-bit, non-prefetchable) [size=256K] Capabilities: [70] Express Root Complex Integrated Endpoint, IntMsgNum 0 Capabilities: [d0] Power Management version 3 Capabilities: [100] Designated Vendor-Specific: Vendor=8086 ID=0002 Rev=1 Len=16 <?> Capabilities: [110] Designated Vendor-Specific: Vendor=8086 ID=0003 Rev=1 Len=16 <?> Capabilities: [120] Designated Vendor-Specific: Vendor=8086 ID=0004 Rev=1 Len=16 <?> Kernel driver in use: intel_vsec Kernel modules: intel_vsec 00:0b.0 Processing accelerators: Intel Corporation Meteor Lake NPU (rev 04) Subsystem: ASUSTeK Computer Inc. Device 20bf Flags: fast devsel, IOMMU group 8 Memory at 5018000000 (64-bit, non-prefetchable) [size=128M] Memory at 50202e4000 (64-bit, non-prefetchable) [size=4K] Capabilities: [80] Power Management version 3 Capabilities: [90] Vendor Specific Information: Len=14 <?> Capabilities: [d0] MSI: Enable- Count=1/1 Maskable+ 64bit+ Capabilities: [40] Express Root Complex Integrated Endpoint, IntMsgNum 0 Capabilities: [100] Address Translation Service (ATS) Kernel modules: intel_vpu У нас нет этого: CONFIG_INTEL_VSEC=m
Created attachment 16846 [details] S0ix test 6.11rc7
Created attachment 16847 [details] lspci -v вывод на Fedora в Live
Created attachment 16848 [details] lspci -v вывод 6.11rc7
Я включил еще опций для будущего 6.1-rc8 https://git.altlinux.org/people/kernelbot/packages/?p=kernel-image.git;a=shortlog;h=refs/heads/6.11/sisyphus Та штука пропадала потому что не было CONFIG_INTEL_VSEC
Понял. Это сейчас хорошо так ядро настроим для новых CPU :) Ещё заметил 00:1f.5 Serial bus controller: Intel Corporation Meteor Lake-P SPI Controller (rev 20) Subsystem: ASUSTeK Computer Inc. Device 1a63 Flags: fast devsel, IOMMU group 16 Memory at 8c100000 (32-bit, non-prefetchable) [size=4K] Kernel driver in use: intel-spi Kernel modules: spi_intel_pci Получается этот тоже, хоть и не так важен в целом CONFIG_SPI_INTEL_PCI
Я так понимаю, где то можно зависимости модулей посмотреть. А подскажите, где это увидеть можно? Например тут https://cateee.net/lkddb/web-lkddb/INTEL_PMC_CORE.html не показывал VSEC.
Нашёл, он уже требуется для телеметрии CONFIG_INTEL_PMT_TELEMETRY Понял. Но как построить полное дерево зависимости пока не понял :)
(In reply to Toxblh from comment #26) > Нашёл, он уже требуется для телеметрии CONFIG_INTEL_PMT_TELEMETRY Да. > Понял. Но как построить полное дерево зависимости пока не понял :) Никак.
(In reply to Vitaly Chikunov from comment #27) > (In reply to Toxblh from comment #26) > > Понял. Но как построить полное дерево зависимости пока не понял :) > > Никак. В теории, есть такой софт https://github.com/paulgazz/kmax/ (я им не пользовался), но проще вручную Kconfig файлы смотреть, особенно если зависимости не сложные.
Обновился на свеже-собранное 6.11 По сну, успех. Спать он теперь будет, как положено, крепко Congratulations! Your system achieved the deepest S0ix substate! Here is the S0ix substates status: Substate Residency S0i2.0 12871 S0i2.1 24570098 S0i2.2 25978039 А вот Pkg-States всё ещё висят на C2 (pc2) и всё тут. Буду разбираться.
Какой cpufreq governor после загрузки на ядрах где PC-8 и PC-10? Влияет ли если у нас включить такой же?
Если руками всё увести в powersave. Если совсем не трогать, то пару процентов в pc8 есть и pc6. Вечером ещё посижу потыкаюсь. У меня предположение, что CPU сам по себе уже нормально ходит по IDLE состояниям пакетным. Но сейчас что-то ещё держит его. Может графика, может NPU этот. Так как во сне он в PC10 сидит, это по мониторингу видно и спит он теперь, как и положено с минимальным потреблением
Created attachment 16873 [details] Макбук. Сайд тест Попробовал проверить и на макбуке, достигает ли он конечного состояния и да. Поймал сразу после пробуждения показывает, что он сидит в РС7. Но при обычной работе достичь не может. В случае мака это РС6 40% и никак ниже. Пока в состоянии исследования сижу читаю. Информации крайне не много, как настроить работу и как индентифицировать проблемы, чисто какие-то случайны заметки на форумах от интел сотрудников или в багзиле ядра. Но железно, оба ноута сейчас достичь могут предпоследних состояний и висеть там. Есть идея посмотреть на разные планировщики ещё и исследую разницу с другими ядрами, благо гит всё помнит.
Ушёл в чтение базы и основ, как он нагрузкой управляет. Из всех показателей на Альт все прерывания размазаны по всем ядрам. У меня на обоих ноутах это wifi и nvme сразу всё занимают и по мелочи ещё остальные устройства. На неделе накачу fedora на ноут и попробую понять, как оно так работает и что там ещё работает, как на системе на который asus хотя бы в pc10 сидел часто. А чем именно это достигнуто было я пока не разобрался. Так как банальные советы с первых страниц гугла не работают. powertop затюнинен. Ядра и устройства все в минимальное потребление установлены и это не помогает. Он зависает равномерно на pc2 pc6 и pc8 по 30% и pc10 0.2%, что крайне мало и его постоянно что-то будит.
Created attachment 16933 [details] pc10 после обновления Кажется, на этом всё. Обновилась libcamera с патчами. Обновился и PC10 стал адекватно появляться. Технически на этом бага исчерпана :)
(In reply to Toxblh from comment #34) > Created attachment 16933 [details] > pc10 после обновления На какой версии ядра?
(Ответ для Vitaly Chikunov на комментарий #35) > На какой версии ядра? Ядро всё то же - 6.11.0 которое последнее в репе. То что описал в https://bugzilla.altlinux.org/show_bug.cgi?id=51478#c14 #14 > И кажется это поправят в новой версии libcamera > https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2669#note_2550125 libcamera, ещё держала "открытой" камеру и это видимо было причиной IRQ в большом количестве и не давала уснуть видимо. Несмотря на то, что я "выключал" это в конфиге pipewire. Это исправили в 0.3.2 версии, её и обновил.