Brak jednego przełącznika, jednego parametru w konfiguracji wywołania demona zarządzania częstotliwością procesora (powernowd)… i się okazuje, że jak potrzeba wydajności, to jeden rdzeń pracuje na pełnym gwizdku – 2 GHz. A drugi? Się opierdala na 800 MHz…
No tak durnej wpadki, żeby permanentnie jeden rdzeń pracował w trybie oszczędzania energii, to jeszcze nie miałem
. Wszystko wyszło przypadkiem, gdy zaglądałem do /proc/cpuinfo (z okazji aktualizacji GCC do 4.3.2 zmieniałem -march na core2). Gdy maszyna coś sobie liczyła:
# cat /proc/cpuinfo | grep MHz
cpu MHz : 2001.000
cpu MHz : 800.000
Jak się okazało powernowd ma przełącznik „-c„: „Specify number of threads per power-managed core„, który domyślnie wynosi chyba 0, czyli pracuj tylko na jednym rdzeniu. Stąd zwalniał/przyspieszał tylko jeden rdzeń, drugi na stałe był w najwolniejszym trybie, czyli 800 MHz. Dopiero wpisanie mu do /etc/conf.d/powernowd parametru „-c 1” powoduje sterowanie każdym z rdzeni.
Jeszcze lepiej – mam w Gnome aplet w pasku do ręcznej zmiany częstotliwości CPU. I on działać może tylko na jednym CPU… więc w efekcie, żeby móc sterować obydwoma rdzeniami, muszę miec takie cudo:
W sumie, to całkiem nieźle to w Intelu obmyślono – każdy z rdzeni jest osobno sterowalny i może pracować z różną częstotliwością w zależności od potrzeb… ale po co mi możliwość sterowania poszczególnymi rdzeniami?
kozik

Wrzesień 1st, 2009 at 0:27
„po co mi możliwość sterowania poszczególnymi rdzeniami”
Można sobie wyobrazić jej przydatność… np. gdy jakiś program ograniczy(my) się do jednego rdzenia, wtedy dzięki temu można kontrolować jego wydajność…
Wrzesień 1st, 2009 at 17:44
Teoretycznie tak, jednak biorąc pod uwagę brak kontroli na jakim CPU dany wątek/proces jest wykonywany (w typowej sytuacji) jest to raczej mocno hipotetyczna sytuacja.