V kódové bázi, na které je jádro vytvořeno Linux Ve verzi 7.0 byla provedena sada změn, které během zátěžového testování na 100gigabitové síti umožnily 12% zvýšení výkonu zpracování příchozích UDP paketů. Optimalizace byla provedena ručním vložením dvou funkcí. Je třeba poznamenat, že funkci timecounter_cyc2time() lze volat pro každý příchozí paket, protože moderní protokoly vyžadují zohlednění času příchodu paketu. Z tohoto důvodu na nabité síti server Funkci timecounter_cyc2time() lze volat více než 100 milionůkrát za sekundu.
V této situaci automatické optimalizace kompilátoru, jako například FDO (Feedback Directed Optimization), LTO (Link Time Optimization) a PGO (Profile Guided Optimization), nedokázaly detekovat segment aktivního kódu a ignorovaly ho, zřejmě proto, že ovladače síťové karty jsou dodávány jako samostatné moduly. Ruční inline rozšíření funkce však přineslo významné zvýšení výkonu.
Zdroj: opennet.ru
