URL: https://linuxfr.org/users/illwieckz/journaux/burn-cpu-burn Title: burn, cpu, burn ! Authors: Thomas Debesse Date: 2015年11月25日T09:03:12+01:00 License: CC By-SA Tags: Score: 50 Cher journal, j’ai eu chaud, _très très chaud_ ! (enfin, mon ordinateur). # Quand on prend des risques Bon, OK, j’avoue, j’utilise quelques logiciels en préversion (pilotes graphiques... et quelques outils, VLC entre autres). Je glisse un DVD tout à fait légitime dans le mange disque et je lance VLC. J’ai le son, mais pas l’image, comme c’est un DVD de musique je m’interroge si c’est normal. Et puis hop, avant d’avoir trouvé la réponse à ma question, tout l’affichage à l’écran part en cacahuète, tout d’abord sous la forme d’un espèce de kaléidoscope blanc. La musique en tâche de fond continue mais commence à bégayer. Puis l’écran s’éteint, et se rallume, pour former une espèce de neige inversée (pixels noirs et gris sur fond blanc). La musique s’est complètement arrêtée. Puis l’écran s’éteint et se rallume, et j’ai encore un autre motif. Bon, là c’est sûr, _ce n’est pas normal_. # Quand le bug flatte le geek Je me dis _« ouh, il semble que VLC a posé son pied dans un bug du pilote graphique, voyons voir ce que c’est »_. Le geek, il voit toujours la vie du côté fun, le moindre problème est un problème à résoudre, et ça c’est excitant ! \o/ Pensant sérieusement que c’est un simple crash du pilote, je démarre mon ordinateur portable dans le but de me connecter en ssh à une console pour poser un diagnostic, et peut-être, remonter le bug quel que soit le fautif (le noyau ? le pilote ? VLC ?). Peut-être, je l’espère, je trouverais assez d’information pour qu’il soit corrigé (espoir, espoir). [![irrégularités graphiques](http://illwieckz.net/media/reduc/burn-cpu-burn/irregularites-graphiques.720.jpg)](http://illwieckz.net/media/image/burn-cpu-burn/irregularites-graphiques.jpg) _J’ai même pris le temps de prendre une photo pour le rapport de bug, voici un des très variés motifs que j’ai vu. Et à vrai dire, celui-ci est le dernier._ # C’est le mi-mi-mi, la me-merde Mais je n’irai pas jusque-là, car tout d’un coup, mon PC s’éteint. **_CLAC_**. Je me dis _« mince »_. J’appuie sur le bouton d’alimentation, la carte-mère s’agite, les ventilos sursautent, et **_CLAC_**, le PC se ré-éteint aussitôt. Je me dis _« mince, mince »_. Et là, inquiet, je sens le chaud, ça sent le chaud, vraiment le chaud là, _« mince, mince, mince »_ me dis-je ! J’ouvre la tour, aucun dégât visible, je touche les différents dissipateurs, et j’arrive à celui du CPU... _« mince, mince, mince, mince »_ je me brûle le doigt... et ça fait déjà trente secondes qu’il est éteint. o.O Je me dis, _« ouuuh, j’espère que mon processeur n’a pas grillé »_, je me dis que normalement le proco a un mécanisme de sécurité qui le force à se couper en cas de surchauffe (on n’est plus [à l’époque de l’athlon](https://www.youtube.com/watch?v=y39D4529FM4)), alors là me vient une inquiétude... Quand le proco surchauffe, le proco s’arrête et l’ordinateur s’arrête avec lui, mais avec lui s’arrêtent aussi les ventilateurs. # Quand le dissipateur accumule Et voilà que mon gros dissipateur en métal fait accumulateur de chaleur ! Il n’est plus ventilé, et c’est lui qui conserve la température à la surface du CPU... Et quand j’allume l’ordi, le CPU éteint tout par surchauffe _avant_ que les ventilateurs aient assez ventilés, et le dissipateur met trop de temps à se refroidir ! Je saisi d’une main un ventilo dans un tiroir, et de l’autre main une alimentation de disque dur externe, et un adaptateur, et je le place en extraction sur la face du dissipateur qui n’a pas de ventilateur (l’autre face a un ventilateur en aspiration, à demeure, mais éteint, si vous avez bien suivi)... La température du dissipateur redescend (mon petit doigt me dit, pour une fois il est assez fiable, là)... Je tente une mise sous tension, je vais direct sur l’interface du micrologiciel de la carte mère pour surveiller la température. Déjà si j’arrive là c’est que mon proco n’est pas mort, je suis rassuré... Je vois la température déjà bien descendue à 55° et je choisis de laisser redescendre encore un peu... Une fois atteint les 45°, je redémarre, j’amorce un OS complet et voilà que j’écris ce journal. Ouf ! # Burn, cpu, burn ! Mais que s’est-il-passé ? La cause du bug, je ne sais pas, mais il ne s’est pas seulement passé qu’un simple bug graphique, une boucle infinie est partie sur le CPU, et qui certainement se suffisait uniquement des caches CPU ce qui a maximisé l’échauffement. Pour ceux qui sont curieux et qui veulent reproduire ça chez eux, vous pouvez installer le paquet `cpuburn` (qui contient des binaires optimisés pour votre famille de processeur. L’idée est simple : on lance une boucle infinie avec un calcul qui demande un maximum de ressources au processeur mais qui ne demande aucune entrée/sortie avec un autre composant (mémoire centrale par exemple), ce qui ralentirait l’exécution. Lancez un processus par cœur et surveillez votre température... Installez `cpuburn` et installez et configurez [`lm-sensors`](https://en.wikipedia.org/wiki/Lm_sensors). `killall` est distribué dans le paquet `psmisc` sous Debian/Ubuntu, vérifiez que vous l’avez avant de lancer le test si vous voulez l’interrompre ! Lancez un processus par cœur (en imaginant que vous avez un processeur de marque AMD) : ``` for i in $(grep ^proc /proc/cpuinfo | cut -c1); do burnK7 & done ``` Surveillez la température et vos ventilateurs avec `sensors`, pour arrêter le test, faites : ``` killall burnK7 ``` Bref, involontairement, un scénario similaire s’est produit. Je croyais que seule ma carte graphique avait planté. En fait, si ma carte graphique faisait des gribouillages futiles, mon processeur partait en flamme. # Quand le régulateur ne régule plus En temps normal, la température de mon processeur oscille entre 30 et 40°C, selon la charge système, et les ventilateurs tournent doucement (aux alentours de 128 tr/min). En fait je pourrais même les arrêter (oui, même celui du processeur, à faible charge le dissipateur suffit), mais je considère qu’un ventilateur arrêté est une alerte : quand le ventilateur est _normalement_ arrêté, il est impossible de savoir s’il saura démarrer quand on aura besoin de lui, ou s’il est cassé. Donc, mes ventilateurs tournent au ralenti, au plus lent qu’ils le peuvent. Quand le processeur chauffe trop (forte charge), j’ai un régulateur logiciel qui s’occupe d’accélérer mes ventilateurs (le très rustique `fancontrol`). Ainsi, le ventilateur principal est sensé monter à 1400 tr/min quand la température dépasse 50° (ce qui est encore tiède, mais voyez comme je suis prudent). À coté de cela, en cas de très très forte charge, j’ai un autre régulateur (de derrière les fagots) qui est prêt à réduire la fréquence d’horloge en cas de surchauffe que les ventilateurs ne peuvent calmer. Ainsi, si le processeur atteint 70° (ce qui commence à faire chaud mais n’est pas encore critique), les 8 cœurs passent instantanément de 4.7GHz à 1.4GHz, ce qui est capable de faire baisser la température à 50° en quelque seconde avec les ventilos sus-cités. En vrai le régulateur réactive le gouverneur précédemment sélectionné dès que la température repasse en dessous des 70°, ce qui permet à une grosse tâche de n’être bridée que lorsque ça atteint les 70°C, mais seulement une ou de seconde, le temps de repasser en dessous. Ce genre de situation arrive rarement, par exemple l’été (je suis au bord de la méditerranée, ça chauffe) quand je calcule le rendu de quelques dizaines de giga-octets de photos, ça arrive. Il se trouve que [`darktable`](http://www.darktable.org/) est un assez bon _cpu burner_, notamment sur les algos de débruitage. Au bout d’une demi-heure de rendu, il arrive que ça commence à chauffer _sévère_. J’avais testé le bouzin (avec `cpuburn` justement) et ça marche très bien. En cas de charge normale, le PC ronronne très silencieusement, avec des ventilateurs qui tournent au pas. En cas de grosse charge, la ventilation se met en mode soufflerie de réacteur, et si c’est encore insuffisant, le processeur se bride. 90% du temps, l’ordinateur est très très (très) discret. # Observer le système, c’est modifier le système Mais voilà, il n’y a pas eu qu’un bug graphique, il n’y a pas eu qu’un processus qui est partie en mode _« hamster dans sa roue »_ sur le proco, tout le système a planté, et donc les régulateurs sus-cités, qui tournent _au dessus_ du système, n’ont rien pu faire. Et oui, un hamster, [ça court très vite](https://www.youtube.com/watch?v=1VuMdLm0ccU) ! Comme tout le système avait planté, les régulateurs n’ont pas agis, et mon processeur a atteint la température limite (quelque part entre 90 et 100°C je suppose) alors que le ventilateur restait bien sage à 128 tr/min ou quelque chose comme ça. En fait il y a un autre régulateur, _au dessous_ du système, qui est sensé fonctionner même quand le système est planté, et qui est géré par le micrologiciel de la carte-mère. Mais malheureusement, il ne sait pas faire descendre mes ventilateurs en dessous des 600 tr/min ce qui reste encore assez bruyant... Donc je n’utilise pas ce régulateur, pas parce qu’il est proprio, mais parce qu’il est suboptimal ! # Choix inique J’espère que je ne rencontrerai pas de problème à long terme, parce que ça a quand même bien chauffé ! Là, le processeur est à 30° et son ventilateur tourne à 128 tr/min, et j’écris un journal sur DLFP, tout va bien. \\_o< coin coin Je n’ai pas fait de rapport de bug, car il faudrait que je reproduise, et j’ai peur de cramer mon système. Mais bon, peut-être que si je ne rapporte pas le bug, d’autres crameront leur système, en vrai... Ça me rappelle un bug _grave_ que j’avais rencontré et que je n’avais pas rapporté. J’avais remarqué que lorsqu’on lançait un script de Steam à la main (au lieu de laisser l’interface graphique le faire, je crois que c’était `.local/share/Steam/steam.sh`), ce script faisait en gros l’équivalent de `rm -Rf /`, ce qui malgré les protections unix, peut tout de même rincer tout le _home directory_. Heureusement, ça n’avait rincé que mon _chroot_ (j’avais eu la présence d’esprit de lancer Steam dans un environnement chrooté), mais chez un autre ça pouvait tout supprimer, et avoir des conséquences facheuses. Un peu refroidi par le fait que Steam (l’équipe) ne s’inquiétait pas que Steam (le logiciel) ne s’installait pas sur SteamOS [pendant deux mois](https://github.com/ValveSoftware/SteamOS/issues/177), je n’avais pas reporté le bug. Heureusement, un autre l’a fait pour moi [neuf mois plus tard](https://github.com/ValveSoftware/steam-for-linux/issues/3671). Quand j’ai vu ce bug, je me suis dit _« oup's »_, heureusement, cette autre personne avait une sauvegarde, mais s’il avait perdu quelque chose d’important, je me serai senti un peu responsable, même si je ne le connais pas. Alors, cette fois-ci, est-ce que je risque ma bécane, ou je laisse les autres faire flamber leur matériel ? Bref, moralité de l’histoire : quand votre système plante, soit vous débuggez, soit vous utilisez un régulateur de température en espace utilisateur... _mais ne faites jamais les deux en même temps !_ Comme vous-êtes un peu geek, ça vous tente un peu de toucher à tout. Mais non, vraiment, _c’est non !_

AltStyle によって変換されたページ (->オリジナル) /