Im Linuxx86_64-Kernel sind mikroarchitekturspezifische Optimierungen weit verbreitet, und sowohl Intel- als auch AMD-CPU-Familien verwenden verschiedene Leistungstricks, während ARM64Linux-Kernelbetreuer die Einführung neuer mikroarchitekturspezifischer Optimierungen ablehnen, da diese sich auf neue ARM-Prozessoren auswirken werden.
Ampere Computing hat einen Satz von vier Patches verschickt, um Optimierungen für seine neuen AmpereOne-Serverprozessoren bereitzustellen. Ampere Computing hat herausgefunden, dass diese neuen ARM-Serverprozessoren mit hoher Kernanzahl bei der Verwendung von 4K-Seitengrößen von aggressivem Prefetching profitieren können. In sequentiellen Leseleistungstests wurde berichtet, dass die Vorteile der Verwendung von HugeTLB oder Tmpfs „bis zu 1,3–1,4x“ betragen.
Die Testergebnisse zeigen, dass wir in Hugetlb oder tmpfs die kontinuierliche Leseleistung erheblich auf das 1,3- bis 1,4-fache verbessern können.Während diese Verbesserungen für die Verbesserung der Leistung von AmpereOneLinux spannend sind, scheint es derzeit so, dass diese Arbeit nicht in den Mainline-Linux-Kernel hochgeladen wird.
Der bekannte ARMLinux-Kernel-Entwickler WillDeacon äußerte seine Ansichten zum Leistungsverbesserungs-Patch von AmpereOneCPU:
„Wir neigen dazu, vor Mikroarchitektur-spezifischen Optimierungen in arm64-Kerneln zurückzuschrecken, da diese Optimierungen sehr schwer zu warten und schwer richtig zu testen sind, oft zu Aufblähungen führen und zusätzliche Hürden für die Aktualisierung unserer Bibliotheksroutinen darstellen.“
Zugegeben, wir haben etwas Hilfe für Thunder-X1 in copy_page() (getarnt als ARM64_HAS_NO_HW_PREFETCH), aber ehrlich gesagt braucht diese Maschine jede Hilfe, die sie bekommen kann.
Daher erwarte ich nicht wirklich eine Fusion; Moderne CPUs sollten Daten besser kopieren können. Das ist copy_to_user(), kein Hexenwerk. "
Auch Mark Rutland von ARM stimmte Deacon zu und stimmte zu, die gezielte Optimierung von Thunder-X1 abzubrechen. Kernel-Entwickler MarcZyngier stimmt zu und arbeitet bereits an einem Patch, um Thunder-X1-spezifischen Code zu entfernen.
Um den Code wartbar zu halten und übermäßig komplexen ARM64Linux-Kernelcode zu vermeiden, verfolgen sie keine CPU-/Mikroarchitektur-spezifischen Optimierungen mehr. Es wird sich lohnen, zu beobachten, ob zukünftige, auf ARMLinux ausgerichtete Distributionen solche Patches selbst enthalten werden, oder ob es künftige AmpereOne-optimierte Linux-Distributionen geben wird. Insbesondere angesichts des Fokus von Ampere auf leistungsstarke und energieeffiziente ARMLinux-Server ist es wahrscheinlich, dass sie keine Spuren der Optimierung hinterlassen wollen, insbesondere wenn man bedenkt, dass sie mit AMDEPYC- und IntelXeon-Servern konkurrieren wollen.