Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Résolu][CPU] Comment réguler mon CPU
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
zerros
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jun 2010
Posts: 149

PostPosted: Thu Apr 26, 2012 6:52 am    Post subject: [Résolu][CPU] Comment réguler mon CPU Reply with quote

Bonjour,

Je suis sur un ordinateur portable et depuis que j'ai installé gentoo, j'ai l'impression que le CPU tourne à fond.
Mon PC fait un peu plus de bruit que ceux de mes collègues qui ont le même modèle (DELL Latitude E6320).

J'ai installé cpufreq, mais il me dit qu'il ne trouve aucun pilote cpufreq pour mon cpu:
Code:
analyse du CPU 0 :
  pas de pilotes cpufreq reconnu pour ce CPU
  maximum transition latency: 4294.55 ms.
analyse du CPU 1 :
  pas de pilotes cpufreq reconnu pour ce CPU
  maximum transition latency: 4294.55 ms.
analyse du CPU 2 :
  pas de pilotes cpufreq reconnu pour ce CPU
  maximum transition latency: 4294.55 ms.
analyse du CPU 3 :
  pas de pilotes cpufreq reconnu pour ce CPU
  maximum transition latency: 4294.55 ms.


J'ai donc recompilé mon noyau pour intégrer CONFIG_X86_ACPI_CPUFREQ, mais idem ... Comment puis-je réguler mon cpu ?

J'espère que vous pourrez m'aider.
_________________
- zerros -


Last edited by zerros on Thu Apr 26, 2012 8:37 am; edited 1 time in total
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3321
Location: Paris - France

PostPosted: Thu Apr 26, 2012 8:02 am    Post subject: Reply with quote

cpufreqd ne sert à rien, en tous cas plus depuis quelques temps que le governor ondemand a été mis dans le kernel.

il faut, à minima, activer dans le noyau :
- CONFIG_CPU_FREQ
- CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND
- CONFIG_CPU_FREQ_GOV_ONDEMAND

Ceci va activer par défaut (au boot) le governor ondemand qui est celui qui change la fréquence automatiquement en fonction de la charge CPU. Les seuils de changement de fréquence sont ensuite configurables dans /sys/devices/system/cpu/cpufreq/ondemand.
Et c'est tout, ça roule tout seul :)

Pour ma part, je tune comme ça, pour rendre les changements de fréquence plus rapides et qu'ils interviennent lorsque le core est chargé à 25% au lieu de 95% par défaut (c'est plus rentable de monter très fort en fréquence pour accomplir la tâche voulue le plus rapidement possible puis de redescendre, plutôt que de faire la tâche moins vite à fréquence plus faible, du point de vue de la réactivité du desktop) :
Code:
echo 0 > /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load
echo 25 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
cat /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate_min > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate

Un brin de doc là : https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling#Improving_on-demand_performance
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
zerros
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jun 2010
Posts: 149

PostPosted: Thu Apr 26, 2012 8:37 am    Post subject: Reply with quote

Super mercciiii :) Mon CPU fait déjà moin de bruit et est déjà plus 'froid' :)
_________________
- zerros -
Back to top
View user's profile Send private message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5536
Location: ~Brussels - Belgique

PostPosted: Thu Apr 26, 2012 9:23 am    Post subject: Reply with quote

Tu parles du ventilateur, là ;)
_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be
Back to top
View user's profile Send private message
zerros
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jun 2010
Posts: 149

PostPosted: Thu Apr 26, 2012 10:04 am    Post subject: Reply with quote

euh oui pardon, le ventilo. Je vois qussi que la frequence est ajusté automatiquement en fonction de la charge :)
et avec sensors, je vois que la température des cpu est descendu. top :)
_________________
- zerros -
Back to top
View user's profile Send private message
chris972
Tux's lil' helper
Tux's lil' helper


Joined: 02 Mar 2012
Posts: 97

PostPosted: Thu Apr 26, 2012 2:48 pm    Post subject: Reply with quote

J'ai trouvé la conversation intéressante, et sans vouloir dire de bêtise, je rajouterai qu'il me semble que cpufrequtils soit un peu fait pour gérer tout ça avec son fichier init au boot et sa config :
Code:
# cat /etc/conf.d/cpufrequtils
# /etc/conf.d/cpufrequtils: config file for /etc/init.d/cpufrequtils

# Options when starting cpufreq (given to the `cpufreq-set` program)
START_OPTS="--governor ondemand"

# Options when stopping cpufreq (given to the `cpufreq-set` program)
STOP_OPTS="--governor performance"

# Extra settings to write to sysfs cpufreq values.
#SYSFS_EXTRA="ondemand/ignore_nice_load=1 ondemand/up_threshold=70"
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3321
Location: Paris - France

PostPosted: Thu Apr 26, 2012 3:28 pm    Post subject: Reply with quote

En fait j'ai pas tout dit. Mais je me suis fait un script d'init qui permet de changer de governor et configure le ondemand ;)
Je persiste à dire qu'il n'y a pas besoin d'un démon qui tourne en permanence pour ça alors qu'il suffit juste de claquer 2-3 écho dans /sys pour tout paramétrer, tout le boulot étant fait par le kernel. Même pour changer de comportement suivant qu'on est sur batterie ou secteur (par exemple), pas besoin de démon : suffit de greffer un hook sur pm-utils (qui réagit aux événements acpi) pour switcher la conf !

Code:
$ cat /etc/init.d/cpu-ondemand
#!/sbin/runscript
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

extra_commands="min max ondemand"
description="Apply and tune CPU governor policy"

depend() {
    need localmount
}

_set_governor() {
    ebegin "Setting $1 governor"
    for cpu in $(find /sys/devices/system/cpu/ -type d -name 'cpu?')
    do
        cpufreq=${cpu}/cpufreq
        echo $1 > ${cpufreq}/scaling_governor
    done
    eend $?
}

ondemand() {
    _set_governor ondemand
    ebegin "Configuring ondemand governor"
    cpufreq=/sys/devices/system/cpu/cpufreq/ondemand
    echo 0        > ${cpufreq}/ignore_nice_load
    echo 25       > ${cpufreq}/up_threshold
    #echo 2        > ${cpufreq}/sampling_down_factor
    cat ${cpufreq}/sampling_rate_min > ${cpufreq}/sampling_rate
    eend $?
}

max() {
    _set_governor performance
}

min() {
    _set_governor powersave
}

start() {
    ondemand
}

stop() {
    max
}


Enfin, ce n'est que mon avis :)
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
chris972
Tux's lil' helper
Tux's lil' helper


Joined: 02 Mar 2012
Posts: 97

PostPosted: Thu Apr 26, 2012 3:58 pm    Post subject: Reply with quote

Qui a parlé de démon ?
Par moi en tout cas. Cpufrequtils n'est absolument pas un démon. Ce n'est pas parce qu'il est lancé au boot qu'il continue à tourner pour autant.
En plus clair, cpufrequtils fait exactement la même chose que ton script, et fourni des outils pour paramétrer et analyser tout ça.
Tu as déjà au moins installé une fois cpufrequtils pour m'avoir répondu ça ?
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3321
Location: Paris - France

PostPosted: Thu Apr 26, 2012 6:52 pm    Post subject: Reply with quote

En parlant de démon, je pensais plus à cpufreqd entre autres, qui au lieu d'utiliser le governor ondemand, utilise le governor userspace et switche lui même la fréquence en fonction de la charge, truc sous-optimal par excellence (comme le font tant d'autres démons type cpudyn, cpu-speedy, etc..., et autres modules gkrellm et compagnie).
Concernant cpufrequtils, non, jamais essayé. Tout ce que je vois aujourd'hui, c'est un truc avec une home page morte, donc qui risque de passer au treecleaner sous peu. Visiblement projet mort depuis 2-3 ans. Et en 2-3 ans, l'interface kernel dans le sysfs à bougé... Bref, un projet qui ne me donne pas envie de l'essayer. Accessoirement : https://bugs.gentoo.org/show_bug.cgi?id=408193

Mais je dois y mettre de la mauvaise volonté sans doute :P. Je dois aussi avoir un TOC anti-bloat lorsque 1 écho dans le sysfs suffit... Je vois pas quel besoin il y a d'installer un soft en plus avec quelques milliers de lignes de code au lieu d'un simple écho...

Mais bon, ça doit sans doute être mon côté vieux geek acariâtre qui parle.

PS: et ne prend pas la mouche s'il te plaît, je n'ai agressé personne...
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
chris972
Tux's lil' helper
Tux's lil' helper


Joined: 02 Mar 2012
Posts: 97

PostPosted: Thu Apr 26, 2012 7:45 pm    Post subject: Reply with quote

guilc wrote:
Mais je dois y mettre de la mauvaise volonté sans doute :P.

confirmé.

Quote:
Je dois aussi avoir un TOC anti-bloat lorsque 1 écho dans le sysfs suffit... Je vois pas quel besoin il y a d'installer un soft en plus avec quelques milliers de lignes de code au lieu d'un simple écho...

Un simple echo qui t'a vallu de passer du temps à écrire un script qui est EXACTEMENT l'objet de cpufrequtils, en mieux fait, et plus complet.

Quote:
Mais bon, ça doit sans doute être mon côté vieux geek acariâtre qui parle.

Confirmé (bis).

Quant à l'obsolescence de la chose, ça frise la mauvaise foi. Il y a tant d'outils sous linux qui n'ont pas été touchés depuis des années tout simplement parce qu'il font bien ce qu'ils ont à faire et qu'ils ne peuvent pas mieux faire. Ton script, tu penses le retoucher tous les 3 mois pour lui donner un cosmétique coup de jeune ou lui foutre la paix s'il te convient pendant 10 ans ?

Bref. Tu ne connaissais pas, et ne connais toujours pas cpufrequtils, mais tu sembles vivement vexé qu'un outil existe pour ce que tu t'es décarcassé à faire à la main. Alors ton orgueil t'empêche juste de dire : "ouais, c'est vrai, c'est pas mal, j'aurais pu utiliser ça".

Allez, je te laisse le mot de la fin, thread fini pour moi. Tu as l'air jusqu'auboutiste, tu apprécieras donc le geste ;)
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3321
Location: Paris - France

PostPosted: Thu Apr 26, 2012 8:44 pm    Post subject: Reply with quote

chris972 wrote:
Quant à l'obsolescence de la chose, ça frise la mauvaise foi. Il y a tant d'outils sous linux qui n'ont pas été touchés depuis des années tout simplement parce qu'il font bien ce qu'ils ont à faire et qu'ils ne peuvent pas mieux faire. Ton script, tu penses le retoucher tous les 3 mois pour lui donner un cosmétique coup de jeune ou lui foutre la paix s'il te convient pendant 10 ans ?

Bah figure toi que justement, mon script il a bougé en novembre 2010, quand la structure du sysfs a un brin changé (soit après la dernière mouture de cpufrequtils)...

Quote:
Bref. Tu ne connaissais pas, et ne connais toujours pas cpufrequtils, mais tu sembles vivement vexé qu'un outil existe pour ce que tu t'es décarcassé à faire à la main. Alors ton orgueil t'empêche juste de dire : "ouais, c'est vrai, c'est pas mal, j'aurais pu utiliser ça".

Allez, je te laisse le mot de la fin, thread fini pour moi. Tu as l'air jusqu'auboutiste, tu apprécieras donc le geste ;)

Utiliser 5000(*) lignes de C, non maintenu, au lieu de faire la même chose en quelques lignes de shell et 5 minutes de lecture de la doc (/usr/src/linux/Documentation/cpu-freq/governors.txt), désolé mais ça me fait toujours pas envie de découvrir.
Et ne t'en déplaise, je ne me suis pas "décarcassé" à le faire à la main, si j'y ai passé 15 minutes, tests et lecture de doc comprise, c'est bien le bout du monde. Et il en faut plus pour me vexer.

Entre nous, vu ta réaction (et là pour le coup, limite les insultes via tes citations soulignant certains de mes propos : heureusement que je ne suis pas susceptible, parce que dans le monde d'où je viens, tes 2 remarques "confirmé" sont extrêmement impolies et incorrectes), c'est bien à se demander qui prend la mouche et est un jusqueboutiste.
On est sur un forum, on expose nos point de vue, on n'est pas obligé d'être d'accord. C'est même le principe. Je te dis que je préfère mes quelques lignes de shell rassemblées dans un pauvre script d'init qu'un gros tas de C pas maintenu, c'est mon droit non ? Tu as aussi le droit de ne pas être d'accord, mais tu n'est pas non plus obligé d'agresser pour ça... Pour le coup, ça ne me fera pas plus changer d'avis.

Si ça te satisfait, tant mieux pour toi. Et si ça te dis, quand tu auras pris ta camomille pour lâcher un peu la pression, tu pourras aussi nous expliquer pourquoi wrapper un pauvre echo sur le sysfs (sysfs qui est exactement prévu pour ça) dans du C serait "mieux fait"... Parce que si c'est pour faire des interfaces kernel accessibles uniquement en C, autant tout passer par du netlink (http://en.wikipedia.org/wiki/Netlink) et virer les sysfs et procfs. En voilà une idée à donner aux devs kernel tiens, echo c'est trop sale.


Quant à mon orgueil et mon amour propre qui m'empêcheraient de reconnaître que zut, je me suis planté... Si tu me connaissais, tu saurais que je reconnais très volontiers avoir tord et que je ne demande qu'à découvrir des trucs. Mais il se trouve que dans le cas présent, je pense que outre le fait que c'est plus ou moins à l'abandon, c'est à mon sens du bloatware inutile, pour les raisons citées plus haut.




*
Code:
$ find -name "*.[c|h]" | xargs wc -l
   113 ./debug/x86_64/centrino-decode.c
    96 ./debug/x86_64/powernow-k8-decode.c
   196 ./debug/i386/dump_psb.c
    78 ./debug/i386/intel_gsic.c
   113 ./debug/i386/centrino-decode.c
    96 ./debug/i386/powernow-k8-decode.c
   113 ./debug/kernel/cpufreq-test_tsc.c
   640 ./lib/sysfs.c
   216 ./lib/proc.c
   215 ./lib/cpufreq.h
    76 ./lib/interfaces.h
   255 ./lib/cpufreq.c
    50 ./bench/parse.h
    29 ./bench/system.h
   224 ./bench/parse.c
   184 ./bench/benchmark.c
   203 ./bench/main.c
    27 ./bench/benchmark.h
    36 ./bench/config.h
   188 ./bench/system.c
   387 ./build/ccdv.c
   629 ./utils/info.c
   375 ./utils/set.c
   427 ./utils/aperf.c
    63 ./utils/cpuid.h
  5029 total

_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum