Вторая вСрсия ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ c рСструктуризациСй Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ядра Linux

Инго ΠœΠΎΠ»Π½Π°Ρ€ (Ingo Molnar) прСдставил Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°Π±ΠΎΡ€Π° ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя пСрСсборки ядра Π·Π° счёт рСструктуризации ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ сокращСния числа пСрСкрёстных зависимостСй. ΠžΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ нСсколько Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии Π½ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ отличаСтся Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠ΅ΠΉ для ядра 5.16-rc8, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сборки с использованиСм компилятора Clang. ΠŸΡ€ΠΈ использовании Clang ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя сборки Π½Π° 88% ΠΈΠ»ΠΈ Π½Π° 77% Π² показатСлях расходования рСсурсов CPU. ΠŸΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ пСрСсборкС ядра ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «make -j96 vmlinux врСмя сборки ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ с 337.788 Π΄ΠΎ 179.773 сСкунд.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ GCC, исправлСны выявлСнныС Π² процСссС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСцСнзирования ошибки ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° унификация Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² объявлСния структуры «task_struct_per_task». ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° оптимизация Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° linux/sched.h ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° оптимизация Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² подсистСмы RDMA (infiniband), которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя сборки Π½Π° 9% ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ. Число Π‘ΠΈ-Ρ„Π°ΠΉΠ»ΠΎΠ² ядра, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» linux/sched.h, сокращСно с 68% Π΄ΠΎ 36% ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсиСй ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ (с 99% Π΄ΠΎ 36% ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с исходным ядром).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ