ΠΠ½Π³ΠΎ ΠΠΎΠ»Π½Π°Ρ (Ingo Molnar), ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Linux ΡΠ΄ΡΠ° ΠΈ Π°Π²ΡΠΎΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ CFS (Completely Fair Scheduler), ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄Π»Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ° Linux ΡΠ΅ΡΠΈΡ ΠΏΠ°ΡΡΠ΅ΠΉ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΄ΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Π½Π° 50-80% Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΡΠΎΠΏΡΡΠΆΠ΅Π½Π° Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Π½Π°Π±ΠΎΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ — Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ 2297 ΠΏΠ°ΡΡΠ΅ΠΉ, ΠΌΠ΅Π½ΡΡΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ 25 ΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (10 ΡΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ «include/» ΠΈ «arch/*/include/» ΠΈ 15 ΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ).
ΠΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π·Π° ΡΡΠΈΠ΄ΡΠ°ΡΡ Π»Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈΠ½ΡΠ»ΠΎ ΡΠ΄ΡΡΡΠ°ΡΡΠΈΠΉ Π²ΠΈΠ΄ ΠΈΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. Π Π°Π±ΠΎΡΠ° Π½Π°Π΄ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°Π½ΡΠ»Π° Π±ΠΎΠ»Π΅Π΅ Π³ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π Ρ ΠΎΠ΄Π΅ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΠΈΠΏΠΎΠ² ΠΈ API Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ ΡΠ΄ΡΠ°.
Π‘ΡΠ΅Π΄ΠΈ Π²Π½Π΅ΡΡΠ½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ inline-ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² ΠΈ API, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΎΠΊΠΎΠ»ΠΎ 80 ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠΌΠ΅Π»ΠΈ ΠΌΠ΅ΡΠ°ΡΡΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠ΅ Π½Π΅ΠΏΡΡΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π· Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ), Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ «.h» ΠΈ «.c», ΠΏΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° «CONFIG_KALLSYMS_FAST=y», Π²ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΠ΄Π°ΡΠΈΡ Π‘ΠΈ-ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ±ΠΎΡΠΎΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Π ΠΈΡΠΎΠ³Π΅, ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π½Π° 1-2 ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΏΠΎΡΡΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° «linux/gfp.h» ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ 13543 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ 303 Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΡΡ Π΄ΠΎ 181 ΡΡΡΠΎΠΊ ΠΈ 26 Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΏΡΠΈ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³Π΅ ΡΠ°ΠΉΠ»Π° «kernel/pid.c» Π±Π΅Π· ΠΏΠ°ΡΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ 94 ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² pid.c. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΡΠΈ ΡΠ°Π·Π°, ΡΠΎΠΊΡΠ°ΡΠΈΠ² ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΡΡΡΠΎΠΊ Π΄ΠΎ 36 ΡΡΡΡΡ.
ΠΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «make -j96 vmlinux» Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π²Π΅ΡΠΊΠΈ v5.16-rc7 Ρ 231.34 Π΄ΠΎ 129.97 ΡΠ΅ΠΊΡΠ½Π΄ (Ρ 15.5 Π΄ΠΎ 27.7 ΡΠ±ΠΎΡΠΎΠΊ Π² ΡΠ°Ρ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΄Π΅Ρ CPU Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠΈ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΡΡΡΠ΅ΠΊΡ ΠΎΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ΅Π½ — Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΎΡΡ Π² ΡΠ°Π·Ρ (ΠΎΡ 112% Π΄ΠΎ 173% Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°). ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ ARM64, MIPS, Sparc ΠΈ x86 (32- ΠΈ 64-Π±ΠΈΡ).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru