Dans le noyau Linuxx86_64, les optimisations spécifiques à la microarchitecture sont très courantes, et les familles de processeurs Intel et AMD emploient diverses astuces de performances, tandis que les mainteneurs du noyau Linux ARM64 s'opposent à l'introduction de nouvelles optimisations spécifiques à la microarchitecture car elles affecteront les nouveaux processeurs ARM.

Ampere Computing a envoyé un ensemble de quatre correctifs pour fournir des optimisations à ses nouveaux processeurs de serveur AmpereOne. Ampere Computing a découvert que ces nouveaux processeurs de serveur ARM à nombre de cœurs élevé peuvent bénéficier d'une prélecture agressive lors de l'utilisation de tailles de page 4K. Dans les tests de performances de lecture séquentielle, les avantages de l'utilisation de HugeTLB ou de Tmpfs auraient été « jusqu'à 1,3 ~ 1,4x ».

Les résultats des tests montrent qu'avec hugetlb ou tmpfs, nous pouvons considérablement améliorer les performances de lecture continue jusqu'à 1,3x~1,4x.Bien que ces améliorations soient intéressantes pour améliorer les performances d'AmpereOneLinux, il semble actuellement que ce travail ne sera pas téléchargé sur le noyau Linux principal.

WillDeacon, développeur bien connu du noyau ARMLinux, a exprimé son point de vue sur le correctif d'amélioration des performances d'AmpereOneCPU :

"Nous avons tendance à éviter les optimisations spécifiques à la microarchitecture dans les noyaux arm64 car ces optimisations sont très difficiles à maintenir, difficiles à tester correctement, entraînent souvent une surcharge et ajoutent des obstacles supplémentaires à la mise à jour des routines de nos bibliothèques.

Certes, nous avons de l'aide pour Thunder-X1 dans copy_page() (déguisé en ARM64_HAS_NO_HW_PREFETCH), mais franchement, cette machine a besoin de toute l'aide possible.

Par conséquent, je ne m’attends pas vraiment à une fusion ; les processeurs modernes devraient faire un meilleur travail de copie des données. C'est copy_to_user(), pas sorcier. "

Mark Rutland d'ARM était également d'accord avec Deacon et a accepté d'annuler l'optimisation ciblée de Thunder-X1. Le développeur du noyau, MarcZyngier, est d'accord et travaille déjà sur un correctif pour supprimer le code spécifique à Thunder-X1.

Afin de garder le code maintenable et d'éviter un code de noyau ARM64Linux trop complexe, ils ne recherchent plus d'optimisations spécifiques au CPU/microarchitecture. Il vaudra la peine de surveiller si les futures distributions axées sur ARMLinux comporteront elles-mêmes de tels correctifs, ou si des distributions Linux optimisées pour AmpereOne iront de l'avant. Compte tenu en particulier de l'accent mis par Ampere sur les serveurs ARMLinux hautes performances et économes en énergie, il est probable qu'ils ne veuillent laisser aucune trace d'optimisation, d'autant plus qu'ils visent à concurrencer les serveurs AMDEPYC et IntelXeon.