In de Linuxx86_64-kernel zijn microarchitectuur-specifieke optimalisaties heel gebruikelijk, en zowel Intel- als AMD CPU-families gebruiken verschillende prestatietrucs, terwijl ARM64 Linux-kernelbeheerders gekant zijn tegen de introductie van nieuwe microarchitectuur-specifieke optimalisaties omdat deze nieuwe ARM-processors zullen beïnvloeden.

Ampere Computing heeft een set van vier patches gestuurd om optimalisaties te bieden voor zijn nieuwe AmpereOne-serverprocessors. Ampere Computing ontdekte dat deze nieuwe ARM-serverprocessors met een hoog kernaantal kunnen profiteren van agressieve prefetching bij gebruik van 4K-paginaformaten. In sequentiële leesprestatietests werd gerapporteerd dat de voordelen van het gebruik van HugeTLB of Tmpfs "tot 1,3 ~ 1,4x" waren.

De testresultaten laten zien dat we in hugetlb of tmpfs de continue leesprestaties aanzienlijk kunnen verbeteren tot 1,3x~1,4x.Hoewel deze verbeteringen opwindend zijn voor het verbeteren van de prestaties van AmpereOneLinux, lijkt het er momenteel op dat dit werk niet zal worden geüpload naar de hoofdlijn Linux-kernel.

De bekende ARMLinux-kernelontwikkelaar WillDeacon gaf zijn mening over de prestatieverbeteringspatch van AmpereOneCPU:

"We hebben de neiging om microarchitectuur-specifieke optimalisaties in arm64-kernels uit de weg te gaan, omdat deze optimalisaties erg moeilijk te onderhouden zijn, moeilijk goed te testen, vaak tot opgeblazenheid leiden en extra barrières toevoegen aan het updaten van onze bibliotheekroutines.

Toegegeven, we hebben wat hulp voor Thunder-X1 in copy_page() (vermomd als ARM64_HAS_NO_HW_PREFETCH), maar eerlijk gezegd heeft die machine alle hulp nodig die hij kan krijgen.

Daarom verwacht ik niet echt een fusie; moderne CPU's zouden gegevens beter moeten kopiëren. Dit is copy_to_user(), geen rocket science. "

Mark Rutland van ARM was het ook met Deacon eens en stemde ermee in om de gerichte optimalisatie van Thunder-X1 te annuleren. Kernelontwikkelaar MarcZyngier is het daarmee eens en werkt al aan een patch om Thunder-X1-specifieke code te verwijderen.

Om de code onderhoudbaar te houden en al te complexe ARM64Linux-kernelcode te vermijden, streven ze niet langer naar CPU/microarchitectuur-specifieke optimalisaties. Het is de moeite waard om te kijken of toekomstige op ARMLinux gerichte distributies dergelijke patches zelf zullen dragen, of dat voor AmpereOne geoptimaliseerde Linux-distributies vooruitgang zullen boeken. Vooral gezien Ampere's focus op krachtige en energiezuinige ARMLinux-servers, is het waarschijnlijk dat ze geen sporen van optimalisatie willen achterlaten, vooral gezien het feit dat ze willen concurreren met AMDEPYC- en IntelXeon-servers.