In de codebasis waarop de kernel van Linux 7.0 is gebaseerd, is een set wijzigingen aangenomen die tijdens stress-testen op een 100-gigabitnetwerk heeft geleid tot een verbetering van de verwerking van binnenkomende UDP-pakketten met 12%. De optimalisatie is gerealiseerd door handmatige inline plaatsing van 2 functies. Het wordt opgemerkt dat de functie timecounter_cyc2time() voor elk binnenkomend pakket kan worden aangeroepen, aangezien moderne protocollen vereisen dat de tijd van binnenkomst van een pakket wordt geregistreerd. Hierdoor op een drukke de server de functie timecounter_cyc2time() kan meer dan 100 miljoen keer per seconde worden aangeroepen.
In deze situatie konden automatisch door de compiler toegepaste optimalisaties, zoals FDO (Feedback Directed Optimization), LTO (Link Time Optimization) en PGO (Profile Guided Optimization), het hete code-segment niet detecteren en hebben het vermoedelijk genegeerd omdat netwerkdrivers in de vorm van afzonderlijke modules worden geleverd. Echter, handmatige inline-plaatsing van de functie heeft aanzienlijke prestatieverbeteringen opgeleverd.
Bron: opennet.ru
