kernel_task bride le CPU de façon erratique

Bonjour,


Sur un macbook pro début 2011 avec Mac OS High Sierra (10.13.6) , le kernel_task est en permanence à ±250%, assurément en mode bridage du CPU en lien avec le SMC, comme le montre la commande suivante :

$ sudo powermetrics
unable to get smc values
Machine model: MacBookPro8,2
SMC version: 1.69f4
EFI version: 87.0.0
OS version: 17G10021
[…]
**** Processor usage ****

Intel energy model derived package power (CPUs+GT+SA): 4.05W

System Average frequency as fraction of nominal: 36.36% (800.00 Mhz)


En remettant à zéro le SMC, le problème ne se règle que temporairement et ré-apparait après quelques heures. L'ordinateur étant assez vieux et la batterie débranchée (elle restait à zéro et ne se chargeait plus), je m'orientais donc vers un problème matériel ("unable to get smc values" en tout début de la sortie précédente) et comptait m'en faire une raison.


Sauf que, en bootant en safe mode, le kernel_task se comporte normalement et chose étonnante, les ventilateurs sont bien plus actifs : je suspecte donc qu'en mode normal, quelque chose empêche les ventilateurs de réguler la température, et que la régulation ne se fait alors en conséquence que sur le bridage du CPU. La température monte jusqu'à 65°C en safe mode mais ne dépasse presque jamais les 50°C en mode normal.


A partir de là, je cherche des pistes sur comment identifier la cause de cette différence de comportement entre les deux modes, je regarde du côté des "kext" suivants mais toute autre piste sur où regarder et quoi chercher pourrait m'être utile.


$ kextstat |grep -v com.apple
Index Refs Address            Size       Wired      Name (Version) UUID <Linked Against>
   80    0 0xffffff7f80ae5000 0x185000   0x185000   at.obdev.nke.LittleSnitch (5430) 7462BC7A-1330-3F92-A73F-3FBFE331C74A <7 5 4 3 1>
  105    3 0xffffff7f8247d000 0xf0000    0xf0000    org.virtualbox.kext.VBoxDrv (6.0.14) 53BAF3B2-AB27-321B-9DF8-7A1395C58923 <7 5 4 3 1>
  180    0 0xffffff7f83e04000 0x8000     0x8000     org.virtualbox.kext.VBoxUSB (6.0.14) CE24428E-4F6D-3690-89CC-1575AA093D8D <179 105 54 7 5 4 3 1>
  182    0 0xffffff7f83e11000 0x5000     0x5000     org.virtualbox.kext.VBoxNetFlt (6.0.14) 895E2094-4B8F-349F-8951-BF361447E6C5 <105 7 5 4 3 1>
  184    0 0xffffff7f83e24000 0x6000     0x6000     org.virtualbox.kext.VBoxNetAdp (6.0.14) 38B6099A-ED14-3D29-87D4-DF1A3E4168CF <105 5 4 1>


A noter, une quantité non négligeable de l'erreur suivante dans system.log :

systemstats[74]: assertion failed: 17G10021: systemstats + 914800 [D1E75C38-62CE-3D77-9ED3-5F6D38EF0676]: 0x40

Et un rapport EtreCheck :


MacBook Pro 15", macOS 10.13

Publiée le 14 déc. 2019 à 04h34

Répondre

Questions similaires

3 réponses

Le 15 déc. 2019 à 10h14 en réponse à clément210

Update


Après plusieurs recherches il y aurait donc deux problèmes :


Problème matériel


La batterie est morte ou débranchée : le processeur se bride automatiquement à 800MHz. Il y a la même chose en safe mode et en single mode utilisateur unique.

Solution : changer la batterie.


Problème logiciel


Il n'apparait qu'en boot normal et vient s'ajouter au bridage matériel : les ventilateurs restent au minimum tout le temps (2000 RPM) et la température du CPU est alors régulée (c'est qu'il semble) par kernel_task qui fait des opérations nulles en boucle pour brider les vraies opérations consommatrices.

Solution : inconnue, la recherche continue, récapitulatif ci-dessous :


En mode normal et en safe mode boot, la commande "powermetrics" ne semble pas accéder au smc :

$ sudo powermetrics
unable to get smc values
[…]


Et pourtant l'utilitaire smcFanControl récupère bien les valeurs de ce même SMC (donc ce n'est pas matériel et le test hardware n'a rien relevé). On y voit bien la différence de vitesse des ventilateurs (la commande "smc" se trouve dans "/Applications/smcFanControl.app/Contents/Resources").


  • en "safe mode" où la température monte jusqu'à 75°C sans intervention de "kernel_task":


$ ./smc -f ; echo -e "\nTempératures: \n"; ./smc -l | grep "^  TC[0-9]"
Fan #0:
    Actual speed : 3736
    Minimum speed: 2000
    Maximum speed: 6200
    Mode         : auto
Fan #1:
    Actual speed : 3738
    Minimum speed: 2000
    Target speed : 3739
    Mode         : auto


  • en boot normal, où kernel_task s'emballe et la température ne dépasse pas 60°C, même sous une forte charge :


$ ./smc -f ; echo -e "\nTempératures: \n"; ./smc -l | grep "^  TC[0-9]"
Fan #0:
    Actual speed : 2005
    Minimum speed: 2000
    Target speed : 2000
    Mode         : auto
Fan #1:
    Minimum speed: 2000
    Maximum speed: 6200
    Target speed : 2000
    Mode         : auto


+ le diff complet de toutes les valeurs lues par `smc -l` (safe mode à gauche, normal mode à droite). Si quelqu'un sait à quoi correspondent chacune des valeurs, ça pourrait être bien utile (ce que j'ai trouvé de plus complet pour le moment : https://stackoverflow.com/a/31033665/463012).




Cette discussion a été fermée par le système ou l’équipe de la communauté. Vous pouvez voter pour les publications que vous jugez utiles ou effectuer des recherches dans la communauté pour trouver des réponses supplémentaires.

kernel_task bride le CPU de façon erratique

Bienvenue dans la Communauté d’assistance Apple
Un forum où les clients Apple s’entraident avec leurs produits. Faites vos premiers pas avec votre compte Apple.