Outils sysadminActualité

Linux GUP : comprendre le gain annoncé de 12,8×

Sur cette page
  1. Deux optimisations, une même référence
  2. Ne pas compter deux fois le même gain
  3. État du code et intérêt applicatif

Le résultat spectaculaire concerne une configuration mémoire précise du benchmark d’un contributeur. Les cas témoins expliquent mieux le mécanisme que le seul multiplicateur maximal.

Médianes mTHP 64 ko rapportées par le contributeur, en microsecondes : référence 2 946, parcours groupé 1 361, regroupement complet 231. Même échelle et référence initiale ; 12,75× global, 5,89× supplémentaire. Pas des mesures PeopleAreGeek.
Médianes mTHP 64 ko rapportées par le contributeur, en microsecondes : référence 2 946, parcours groupé 1 361, regroupement complet 231. Même échelle et référence initiale ; 12,75× global, 5,89× supplémentaire. Pas des mesures PeopleAreGeek. Graphique : PeopleAreGeek. Source des données.
Agrandir l’image

Deux optimisations, une même référence

Le RFC v3 de Rik van Riel propose de parcourir plusieurs entrées de table par appel, puis de regrouper les références des pages consécutives d’un même folio. Le premier mécanisme peut aider les pages de base ; le second exige un folio plus grand approprié.

Le septième correctif fait passer le cas mTHP de 64 ko de 2 946 à 1 361 microsecondes. Le huitième donne 2 946 à 231 microsecondes pour l’ensemble. Les deux tableaux partent de la référence initiale, pas l’un du résultat de l’autre.

L’auteur mesure une médiane sur seize itérations, une région de 256 Mo et une VM à quatre CPU. Le témoin THP de 2 Mo passe seulement de 72 à 71 microsecondes dans le tableau final. PeopleAreGeek n’a pas reproduit ces mesures.

Ne pas compter deux fois le même gain

Les temps publiés donnent 2 946 ÷ 231, soit environ 12,75× au total. Le gain supplémentaire après la première optimisation vaut 1 361 ÷ 231, environ 5,89×. Multiplier 2 946 ÷ 1 361 par 2 946 ÷ 231 compterait deux fois la première amélioration.

La couverture représente les trois temps à la même échelle. Le témoin de 2 Mo presque inchangé compte : un chemin qui ne rencontre pas le même travail répété ne reçoit pas automatiquement le même bénéfice.

État du code et intérêt applicatif

Le code GUP de v7.3-rc2 conserve la signature renvoyant une seule page pour follow_page_mask. La transformation discutée n’est pas établie dans cet instantané principal.

Une application travaille aussi ailleurs. Sur une préparation fictive de dix secondes, dont deux dans ce chemin et huit inchangées, appliquer le ratio mesuré à ces deux secondes donnerait environ 8,16 secondes, pas 0,78. C’est une illustration, pas une prévision de performance.

Mesurez configuration des pages et part du temps avant de prévoir un bénéfice. Le microbenchmark documente un mécanisme dans un contexte précis ; il ne fournit ni plafond universel ni accélération garantie de l’enregistrement mémoire.

Revue du 8 septembre : sources primaires et état livré vérifiés, limites corrigées, illustration utile et explication originale.