10.13 High Sierra TrimForce ou TrimEnabler ? + étrangeté

Le docteur

Membre expert
Club iGen
8 Février 2008
6 216
751
57
J'ai trouvé sur MacBidouille une explication concernant le ralentissement de mon MBP au démarrage lorsque j'active le TRIM
Apparemment l'EFI serait alors vérifié au démarrage et cela ralentirait (de façon très sensible) le boot.

J'ai alors, par curiosité téléchargé Trim Enabler pour voir ce qu'il me disait sur le disque, et là j'ai eu une surprise : TrimEnabler considère apparemment que le TRIM n'est pas activé. Pourtant lorsque je fais un rapport système je trouve bien "oui" à la gestion du TRIM.

Apparemment TE utiliserait une autre méthode pour activer le TRIM. Ce qui m'amène à une double question :
- est-que je je n'aurais pas intérêt à tenter d'activer le TRIM par TE plutôt que par la commande
- dans ce cas j'imagine que je devrais désactiver le TRIM puis l'activer par TE.
 
Je viens de tester avec mes deux Mac, le Trim est bien activé dans Informations système.../SATA/SATA Express et Trim Enabler m'indique bien que le Trim est bien activé. Je ne vois pas ou est ton problème ? C'est quoi cet article que tu as lu ?
 
Bon, eh bien j'aurais dû attendre un peu. J'ai acheté TrimEnabler alors que j'avais une étrangeté et du coup ça continue dans l'étrange.
— TE me donnait effectivement un Trim non activé alors que le rapport système voit l'inverse
— Malheureusement, ça fonctionne aussi dans l'autre sens : TE me donne maintenant un Trim activé et le rapport système le voit désactivé.
Ce n'est pas un article, en fait, mais une page de forum
http://forum.macbidouille.com/index.php?showtopic=405190
... qui renvoie à une page ici :
https://www.macg.co/os-x/2017/09/high-sierra-des-problemes-dinstallation-avec-des-ssd-tiers-99857

En ce qui me concerne j'ai l'impression de démarrer avec un DD.
 
Il semblerait que ce ne soit pas le même driver que ce soit avec TrimForce ou Trimeabler.
Mais est-ce que si le trim apparaît comme non activé dans le rapport système je peux me fier à TrimEnabler s'il me le considère comme activé ?
C'est chiant parce qu'avec TrimEnabler je n'ai pas le ralentissement au boot (en même temps s'il n'est pas activé c'est normal)

J'ai fait la mise à jour du firmware pour mon MX 200
 
On va faire plus radical, tu désinstalles Trim Enabler, ne t'occupes d'aller voir dans les Informations système.

Tu lances le Terminal et tu fais un Copier/Coller de cette commande qui te donnera le statut du Trim...
Bloc de code:
system_profiler SPSerialATADataType | grep 'TRIM'
...tu devrais avoir en retour ceci...

sudo trimforce enable 02.webp
...si tu as Yes, pas de problème, le Trim est bien activé.

Sinon, il faudra lancer le Terminal, puis faire un Copier/Coller de cette commande...
Bloc de code:
sudo trimforce enable
...tu valides avec la touche Entrée. Ton mot de passe sera demandé, il faut le taper en aveugle, car il ne s'affichera pas, puis tu auras cet écran...

sudo trimforce enable.webp
...tu appuies sur la touche Y (yes), tu attends la fin des opérations et tu redémarres, le Trim sera activé.
 
Ca je connais (par contre je n'avais pas la commande pour le vérifier).
Je me demandais seulement si on pouvait avoir une différence entre le rapport système et TrimEnabler.
Déjà ce qui n'est pas normal c'est que TrimEnabler voit le trim désactivé alors que le rapport système et la commande que tu donnes ici le voit activé.
 
Bon ! J'ai fini par piger.
Je n'avais pas installé le driver de Trim Enabler qui, effectivement fonctionne indépendamment de celui de la commande "TrimForce".
Aucun intérêt sinon,
- sans rien d'installé : - de 20 secondes avant l'écran d'accueil
- Avec TrimEnabler : + de 35 secondes avant l'écran d'accueil (plus long qu'avec TrimForce)
- Avec TrimForce : - de 35 secondes avant l'écran d'accueil
- Il semblerait que pour les gourmands on peut coller les deux et là on a franchement l'impression d'être revenu sur un DD à plateaux.

Bref ! Encore 16 euros de jeté par la fenêtre. Peut-être qu'un jour Apple sera assez gentil pour ne pas faire ch... ceux qui ont le malheur de changer du matériel tout seuls.
 
:coucou: doc

Je trouve bizarre qu'une seule extension en plus à injecter dans le kernel au démarrage --> prenne 15" de temps de boot en plus.

Parce que normalement la séquence est celle-ci --> l'EFI exécute le programme de démarrage de l'OS = boot.efi et quitte. Le boot.efi charge le kernel en RAM et lui injecte les extensions (opération signalée par la  à l'écran) puis quitte. Le kernel assure désormais tout seul la suite des opérations.

Donc les 15" en plus se situeraient dans la phase d'injection des extensions dans le noyau chargé en RAM. Pourquoi est-ce que je trouve bizarre cette rallonge temporelle ? C'est que le programme boot.efi ne s'amuse pas, par défaut, à aller chercher l'original du kernel (at: /System/Library/Kernels/kernel) pour le charger en RAM > puis à aller aux 2 dossiers des extensions (natives at: /System/Library/Extensions et tierces at: /Library/Extensions) pour injecter une à une chaque extension après avoir vérifié son intégrité. Oh là là ! - mais ça prendrait un temps fou cette affaire...

Non ! - il existe un cache de démarrage-Système nommé prelinkedkernel (at: /System/Library/Prelinkedkernels/ prelinkedkernel) qui est le cache de démarrage-Système utilisé directement par le boot.efi --> il y trouve un clone du programme du kernel à charger directement en RAM > et le tableau complet des extensions bien "emballées" dans un "fourre-tout" garanti conforme --> ce qui permet une injection en bloc dans le kernel et pas au goutte-à-goutte.

Si tu m'as suivi dans un de mes petits exposés labyrinthiques coutumiers --> tu ne peux manquer de sauter comme moi à la conséquence logique nécessaire : par défaut > l'extension Apple chargée du TRIM sur les SSD de tierce-partie (la AppleDataSetManagement.kext) tenue en réserve dans le sous-dossier : /System/Library/Filesystems > se trouve copiée dans le dossier /System/Library/Extensions par la commande trimforce --> donc elle fait partie du lot des extensions injectées par le boot.efi dans le kernel démarré. Pourquoi une extension (Apple) de plus ou de moins dans le lot mangerait-elle 15" de temps de boot en ralentissant d'autant l'opération d'injection des extensions par le boot.efi ?

La seule raison que j'y vois --> c'est que suite à l'ajout de l'extension AppleDataSetManagement.kext dans le dossier-Système des Extensions --> le timestamp (cachet de temps d'accès uniforme) apposé sur ce dossier aurait été brisé sans être restauré --> par suite le cache de démarrage-System prelinkedkernel n'aurait pas pu être mis à jour par le service qui en est en charge (= le kextd daemon). Ce qui fait que le boot.efi serait obligé de récupérer une extension isolée hors-cache dans le dossier des Extensions (la AppleDataSetManagement.kext) --> pour l'injecter isolément par après (tout ça sent le bogue à plein nez).

Comme tu le vois --> tout ça consiste en de la logique spéculative > mais que j'essaie toujours de garder dans les limites théoriques du « falsifiable » (comme aurait dit l'autre crétin d'épistémologue : Popper). Donc il te suffit de passer les 2 commandes (l'une après l'autre) -->
Bloc de code:
sudo touch /System/Library/Extensions
sudo kextcache -u /

  • la 1ère met-à-jour le timestamp sur le dossier des Extensions (une façon de déclarer : temps d'accès ré-uniformisé à tous les éléments contenus dans le dossier parent > sans une seule tête d'ail qui dépasse)
  • la 2è met-à-jour le cache de démarrage-Système prelinkedkernel pour lui intégrer le tableau complet des Extensions du dossier précédent - mise-à-jour conditionnée par le sceau d'un timestamp intégre sur le dossier
=> cela opéré > tu n'as plus qu'à aller à : Menu  > Préférences Système > Disque de démarrage > vérifier que ton volume Macintosh HD est bien sélectionné comme appareil de démarrage automatique --> et à re-démarrer.

Tu vas vite voir si le démarrage échappe les 15" secondes excédentaires antérieures.

# note: si tu t'obstines à activer FileVault --> ça ne peut pas accélérer le démarrage > puisqu'il faut le temps préalable du déverrouillage du volume-Système avec un écran de login au départ. Si tu veux essayer de mettre de l'huile dans le processus de l'EFI au démarrage > et à la condition que ton High Sierra soit installé sur SSD en format apfs --> alors la commande est :
Bloc de code:
sudo diskutil ap updatePreboot /

  • qui met à jour les informations de boot pour l'EFI contenues dans le volume de pré-démarrage Preboot du Conteneur apfs.
 
Dernière édition par un modérateur:
Le problème c'est que c'est lors de la fin du boot que ça se ralentit.
Sans Trim la pseudo barre de chargement monte assez lentement, manque de s'arrêter et finit de se charger plus vite.
Avec le Trim, même comportement, mais au moment où ça ralentit, ça ne reprend pas plus vite, ça ralentit même plutôt.
Etrangement avec ta commande j'ai un peu le comportement que j'avais avec le Trim de TrimEnabler : c'est plutôt lent tout le temps, mais je reste en dessous des 35 secondes.
C'est vrai que c'est étonnant que le disque soit vérifié à la fin du boot.
 
Est-ce que tu as activé FileVault et est-ce que tu as un écran de déverrouillage en tout début de démarrage ?

  • c'est pour que je me représente toute la séquence de démarrage
 
Merde. J’avais viré Filevault. J’ai rentré ta deuxième commande quand même.
Je n’avais même pas réalisé que je l’avais viré. C’est ta question qui m’a fait réaliser. Je ne dors plus et ma mémoire tourne au gruyère (qui, on le sait n’a pas de trous, mais c’est encore un coup de ladite mémoire)
 
Je m’étais demandé si c’était le métissage Filevault et Dédé estranger qui mettait le souk, mais apparemment non.
 
Bon Dédé s’appelle en fait Hécésdé.
 
HS : J’ai trouvé le moyen de me promener dans les lignes sans les touches de défilement du mode paysage sur iPhone ! Force Touch sur une lettre !!!!
Enfin !!!
Bon! Désolé, ça n’a rien a voir. Mais s’ils avaient pu étendre le clavier en paysage ça aurait eu plus de sens.
 
Donc tu n'as pas de login au départ > mais la  > puis la barre de chargement horizontale > enfin l'écran d'ouverture de session (à moins que tu ne sois en ouverture de session automatique).

  • la  signale exclusivement l'action du boot_loader (programme de chargement) boot.efi --> il charge le kernel en RAM et lui injecte les extensions. Normalement c'est ultra rapide (s'il n'y a pas de lézard - genre extension foireuse --> sinon c'est foutu : hop ! signe d'interdiction de stationner et plantage). Donc ton affaire d'injection de l'extension qui gère le TRIM --> s'exécute d'entrée au moment du logo . Après --> le TRIM est l'affaire exclusive du kernel (une opération intra-kernel qui ne concerne pas l'OS).

  • la barre de chargement horizonale signale la kernel_task de démarrage : chargement du Système BSD > puis lancement du serveur d'initialiation de l'OS proprement dit (processus launchd). launchd est le 1er processus extra-kernel > le processus parent de l'OS --> il a en charge le "dessus du panier" = les super-structures logicielles (l'OS). Le processus de lancement des services de l'OS par launchd n'a absolument rien à voir avec le TRIM qui reste une affaire intra-kernel.

Si tu a l'impression que la barre d'avancement marche assez bien au début > puis ralentit ou se traîne ensuite --> ça veut dire que le chargement du système BSD par le kernel marche bien > mais qu'ensuite le processus d'initialisation de l'OS par launchd s'enlise. C'est exactement mon expérience sur un SSD Crucial avec High Sierra 10.13.4 (beta) --> boot.efi rapide > kernel honorable > launchd minable : la fin de parcours (lancement des services de l'OS) est une vraie croix. Je n'ai pas l'impression qu'il y ait un rapport avec le TRIM.
 
Je peux te dire que si j'enlève le trim, je perds une quinzaine de secondes et ce moment devient quasi immédiat.
Bizarre.
 
Quand tu désactives le TRIM -->

  • est-ce que tu as l'impression que les 15" gagnées le sont sur la séquence démarrage jusqu'à la  comprise sans affichage de la barre (séquence qui serait beaucoup plus rapide) ?
  • ou sur la séquence marquée par la barre dont la progression serait beaucoup plus rapide (la 1ère séquence = démarrage =>  restant inchangée) ?

En résumé : ça se gagne avant ou pendant la barre ?
 
Clairement à la fin de la barre de progression. Il y a un petit arrêt et à partir de cet arrêt deux scénarii : sans Trim : arrêt puis déblocage et chargement très rapide de l’écran de connexion - avec Trim : arrêt puis reprise lente jusqu’à l’écran de connexion.