Linux өзөгүнүн түзүлүшүн 50-80% га тездетүүчү тактардын топтому жарыяланды

Белгилүү Linux ядросун иштеп чыгуучу жана CFS (Completely Fair Scheduler) тапшырма пландоочусунун автору Инго Молнар Linux ядросун иштеп чыгуучунун почта тизмесинде талкуулоо үчүн ядро ​​булактарындагы бардык файлдардын жарымынан көбүнө таасирин тийгизген бир катар патчтарды сунуштады. орнотууларга жараша ядрону толук калыбына келтирүү ылдамдыгын 50-80% га жогорулатууну камсыз кылат. Ишке ашырылган оптималдаштыруу ядронун өнүгүү тарыхындагы өзгөрүүлөрдүн эң чоң топтомун кошуу менен байланышкандыгы менен өзгөчөлөнөт - 2297 патч бир эле учурда 25 миңден ашык файлды өзгөртүүгө сунушталган ("кошумча 10 миң баш файл" /” жана “arch/*/include/” каталогдору жана баштапкы тексттери бар 15 миң файл).

Өндүрүмдүүлүктүн жогорулашына баш файлдарды иштетүү ыкмасын өзгөртүү аркылуу жетишилет. Ядронун өнүгүшүнүн отуз жылдан ашык убакытында файлдардын ортосунда көп сандагы кайчылаш көз карандылыктын болушунан улам баш файлдардын абалы көңүл чөгүүчү көрүнүшкө ээ болгондугу белгиленген. Баш файлды реструктуризациялоо бир жылдан ашык убакытты алды жана иерархияны жана көз карандылыкты олуттуу түрдө кайра иштетүүнү талап кылды. Реструктуризациялоонун жүрүшүндө ар кандай ядронун подсистемалары үчүн типтин аныктамаларын жана API'лерди бөлүү боюнча иштер жүргүзүлдү.

Киргизилген өзгөрүүлөрдүн арасында: жогорку деңгээлдеги баш файлдарды бири-биринен бөлүү, баш файлдарды байланыштырган саптык функцияларды жок кылуу, баш файлдарды типтерге жана 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 бит) архитектуралары үчүн гана жеткиликтүү.

Source: opennet.ru

Комментарий кошуу