Linux nüvəsinin qurulmasını 50-80% sürətləndirən bir sıra yamaqlar nəşr olundu.

Tanınmış Linux nüvəsi tərtibatçısı və CFS (Completely Fair Scheduler) tapşırıq planlayıcısının müəllifi Ingo Molnar, Linux nüvəsi tərtibatçısının poçt siyahısında müzakirə üçün nüvə mənbələrindəki bütün faylların yarısından çoxuna təsir edən bir sıra yamaları təklif etdi. parametrlərdən asılı olaraq nüvənin tam yenidən qurulması sürətinin 50-80% artırılmasını təmin edir. Tətbiq olunan optimallaşdırma, nüvənin inkişafı tarixində ən böyük dəyişikliklər dəstinin əlavə edilməsi ilə əlaqəli olması ilə diqqəti çəkir - 2297 mindən çox faylı (25 min başlıq faylı "daxil olmaqla" dəyişdirərək bir anda daxil olmaq üçün 10 yamaq təklif edildi. /” və “arch/*/include/” qovluqları və mənbə mətnləri olan 15 min fayl).

Performans artımı başlıq fayllarının işlənməsi metodunu dəyişdirməklə əldə edilir. Qeyd olunur ki, otuz ildən artıq kernel inkişafı zamanı fayllar arasında çoxlu sayda çarpaz asılılığın olması səbəbindən başlıq fayllarının vəziyyəti acınacaqlı görünüş almışdır. Başlıq faylının yenidən qurulması bir ildən çox çəkdi və iyerarxiya və asılılıqların əhəmiyyətli dərəcədə yenidən işlənməsini tələb etdi. Yenidənqurma zamanı müxtəlif kernel altsistemləri üçün tip təriflərinin və API-lərin ayrılması istiqamətində iş aparılmışdır.

Edilən dəyişikliklər arasında: yüksək səviyyəli başlıq fayllarının bir-birindən ayrılması, başlıq fayllarını əlaqələndirən daxili funksiyaların aradan qaldırılması, başlıq fayllarının növlər və API-lər üçün ayrılması, başlıq fayllarının ayrıca yığılmasının təmin edilməsi (təxminən 80 faylda montaja müdaxilə edən dolayı asılılıqlar var idi. digər başlıq faylları), “.h” və “.c” fayllarına asılılıqların avtomatik əlavə edilməsi, başlıq fayllarının addım-addım optimallaşdırılması, “CONFIG_KALLSYMS_FAST=y” rejiminin istifadəsi, C fayllarının montaj bloklarına seçmə konsolidasiyası. obyekt fayllarının sayını azaltmaq.

Nəticə etibarı ilə görülən işlər əvvəlcədən emaldan sonrakı mərhələdə işlənmiş başlıq fayllarının ölçüsünü 1-2 böyüklük dərəcəsi ilə azaltmağa imkan verdi. Məsələn, optimallaşdırmadan əvvəl “linux/gfp.h” başlıq faylından istifadə 13543 sətir kod və 303 asılı başlıq faylının daxil edilməsi ilə nəticələndi və optimallaşdırmadan sonra ölçü 181 sətir və 26 asılı fayla endirildi. Və ya başqa bir misal: “kernel/pid.c” faylını yamaqsız qabaqcadan emal edərkən, 94 min sətir kod daxil edilir ki, bunların çoxu pid.c-də istifadə edilmir. Başlıq fayllarının ayrılması işlənmiş kodun həcmini üç dəfə azaltmağa, işlənmiş sətirlərin sayını 36 minə endirməyə imkan verdi.

Test sistemində "make -j96 vmlinux" əmri ilə nüvə tamamilə yenidən qurulduqda, yamaqların tətbiqi v5.16-rc7 filialının qurulması müddətinin 231.34 saniyədən 129.97 saniyəyə (15.5-dən 27.7-yə qədər) azaldığını göstərdi. saatda), həmçinin montajlar zamanı CPU nüvələrindən istifadənin səmərəliliyini artırdı. Artan quruluşla, optimallaşdırmanın təsiri daha da nəzərə çarpır - başlıq fayllarına dəyişikliklər etdikdən sonra nüvənin yenidən qurulması vaxtı əhəmiyyətli dərəcədə azalıb (dəyişdirilən başlıq faylından asılı olaraq 112% -dən 173% -ə qədər). Optimallaşdırmalar hazırda yalnız ARM64, MIPS, Sparc və x86 (32 və 64 bit) arxitekturaları üçün əlçatandır.

Mənbə: opennet.ru

Добавить комментарий