Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Jak ustawić intel_pstate by wykorzystywał konkretne rdzenie procesora.

Zaczęty przez CDeB, Kwiecień 25, 2025, 01:26:36 AM

Poprzedni wątek - Następny wątek

CDeB

Cześć. Wywaliłam Windowsa z mojego ThinkPada, ponieważ Wine działa na tyle dobrze że "okienkowe" oprogramowanie nie potrzebuje Windowsa. Zdecydowałam się na Minta z xfce. Działa to dobrze, ale pomimo że laptop jest cichszy i chłodniejszy to skrócił mi się istotnie czas pracy na baterii z około 8 do około 5,5 godziny (Firefox, Clementine z muzyką w tle, LibreOffice). Zauważyłam że procesor (Intel Core Ultra 7 155H) korzysta głównie z rdzeni P-cores, rdzenie E są wykorzystywane bardzo rzadko, a LP-E wcale. Chciała bym móc ustawić zarządce w taki sposób żeby korzystał tylko z rdzeni LP-E przy małym obciążeniu, przy normalnym z E-cores, a z rdzeni P tylko wtedy gdy naprawdę musi. Obecne ustawienie to powersave a zarządca intel_pstate.

Tak wygląda topologia procesora: (polecenie lstopo)



Zależy mi na ruszeniu rdzenia 14 i 15 a jak widać, przy uruchomionym teście WebGL Aquarium z 15000 rybek ostatnie rdzenie w conky oznaczone jako 21 i 22 nie działają wcale, a jak rozumiem są to właśnie rdzenie LP-E .



Wie ktoś może w jaki sposób można to ustawić, by działało wedle założeń? Może jest coś fajnego z GUI żeby można było to rozsądnie ogarnąć.

pavbaranov


CDeB

Narzędzie z githuba jest świetne, pozwala blokować i dławić częstotliwości dla poszczególnych rdzeni, ale nie pozwala nadać priorytetów użycia. Bynajmniej tego nie znalazłam. Już nawet pytałam ChatGPT i Gemini, ale nie dały mi żadnych konkretnych odpowiedzi. Zastanawiałam się nad zmianą kernela, może wyższy numerek coś by zmienił? Jak u Ciebie to wygląda na Archu?

pavbaranov

Ja mam innego schedulera - zerknij: https://wiki.cachyos.org/features/kernel_manager/#bpfland. I to na 100% jest w kernelach z Kaczki, ale nie odpowiem Ci, czy na pewno również w archowych. Dla mnie, to i tak chyba zbyt wysokie progi, bo moje lapki raczej nie te generacje :(
Z tego: https://www.phoronix.com/news/Linux-P-State-Disable-E-Fix wynikałoby, że kernel ma być >=6.5 (u mnie 6.14.3).
Znalazłem jeszcze coś takiego:
https://lenovopress.lenovo.com/lp1946-using-processor-performance-p-states-with-linux-on-intel-based-servers
https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html
https://lore.kernel.org/lkml/7663799.EvYhyI6sBW@kreacher/
Może to coś Ci pomoże.

CDeB

Bardzo Ci dziękuje za podrzucenie linków, wiele mi wyjaśniły. Częściowym rozwiązaniem, na podstawie poradników, jest wymuszenie trybu pracy intel_pstate jako pasywny, albo wyłączenie HWP. Jednak ustawienie tych opcji w grubie bardzo negatywnie wpływa to na wydajność rdzeni P. Generalnie wszystkie artykuły skupiają się na wydajności rdzeni P właśnie, albo nad sposobem regulacji i zarządzania częstotliwością poszczególnych rdzeni. Podrążę jeszcze temat już tak na spokojnie, zwłaszcza że dałeś mi jakiś punkt zaczepienia. Jeszcze raz dzięki.

pavbaranov

Zachacz jeszcze @sir_lucjan - on w kernelu Kaczki miesza. Może coś Ci pomoże.

CDeB

Jajko 6.14.4 i gcc14 dla atencji rozwiązało problem. Co prawda nie tak jak chciałam, bo nie ogarnęłam priorytetu rdzeni, ale pobawiłam się częstotliwościami, co umożliwiło mi zjechanie z częstotliwością rdzeni do 400MHz :). Obecnie mam rozrzut częstotliwości pracy rdzeni P od 400MHz do 4,8GHz. Co ciekawe, według specyfikacji minimalna częstotliwość wynosi 700MHz. Sensory wskazują wykorzystanie mocy na baterii 6W - 6,4W w stanie spoczynku. Nie wiem jak interpretować wskazania częstotliwości, ale niezależnie od tego jak jest, działa to zacnie.

Bateria trzyma o jakieś 30% dłużej niż na Windowsie, więc głównie założenie zostało zrealizowane:




Jeszcze raz dzięki @pavbaranov za podrzucenie linków, naprawdę się przydały.


Zobacz najnowsze wiadomości na forum