1. Architecture
1.1 Suppression du prefetching
Après une séance de profiling du noyau, Linus s'est aperçu que les instructions prefetch figuraient en haut des résultats. Ces instructions accessibles depuis la macro prefetch() pour les développeurs du noyau, sont notamment utilisées dans les opérations de parcours des listes chaînées de façon à améliorer les performances. Seulement voilà, l'effet constaté de ces instructions semble au final inversé. Après plusieurs analyses quantitatives (menées notamment par Ingo Molnar), cet impact négatif sur les performances a été avéré. Le résultat est sans appel et les instructions prefetch ont ainsi été enlevées des opérations de parcours des listes doublement chaînées, des hlist (listes employées dans les tables de hachage) et des listes de sk_buff (utilisées pour le traitement des paquets réseau) dans cette version du noyau.
Voyons un peu plus dans le détail de quoi il retourne. Les instructions de prefetch...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première