Լինուս Տորվալդսը պատրաստել է մի շարք թարմացումներ միջուկի հիշողության կառավարման ենթահամակարգի համար։ Linux, իրականացնելով էջի քեշից տվյալների փոքր բլոկներ կարդալու օպտիմալացումներ՝ առանց folio կառուցվածքում հղումների քանակը (refcount) ատոմիկորեն փոխելու: «Կոմիտ» տեքստում նշվում է, որ փոփոխությունները, դրանց հետ կապված թեստերը և նախնական ծանոթագրության տեքստը ստեղծվել են Claude Code AI օգնականի կողմից՝ Տորվալդսի հսկողության ներքո: Փոփոխությունը ավելացվել է առանձին միջուկի ճյուղում՝ noref-filemap-read-with-llm-ում, և դեռևս պարզ չէ՝ այն կվերաուղղվի՞ գլխավոր ճյուղ, թե՞ պարզապես ներքին փորձ է:
Փորձարկման ընթացքում թարմացումները մեծացրել են փոքր ֆայլերի ընթերցման թողունակությունը 8-թելային կոնֆիգուրացիայում՝ 9.9-10.4-ից մինչև 30-33 միլիոն գործողություն վայրկյանում (3 անգամ աճ), 4-թելային կոնֆիգուրացիայում՝ 8.9-11.6-ից մինչև 25-26 միլիոն գործողություն վայրկյանում (2 անգամ աճ), իսկ մեկ թելային կոնֆիգուրացիայում՝ 7.9-8.1-ից մինչև 8.8-8.9 միլիոն գործողություն վայրկյանում: Արդյունավետության այս աճը բացատրվում է նրանով, որ էջի քեշին միաժամանակյա մուտքը լուրջ մրցակցություն է առաջացնում թելերի միջև՝ քեշին մուտք գործելիս: Օրինակ, երբ 8 թել փորձում է միաժամանակ կարդալ 16 բայթ տվյալ, ժամանակի 99.92%-ը ծախսվում է ոչ թե ընթերցման վրա, այլ հղման հաշվիչին մուտք գործելու սպասման վրա:
Տվյալների ճշգրտությունն ապահովելու համար, թարմացումը օգտագործում է շրջանցիկ լուծում, որն օգտագործում է հիշողության ուշացված ապաբլոկացիան՝ համաժամեցմամբ՝ Կարդալ-Պատճենել-Թարմացնել (RCU) մեխանիզմի միջոցով, այլ ոչ թե առանձին կողպեքներ ձեռք բերելը, հղման հաշվիչները փոխելը կամ միջանկյալ բուֆերացումը: Այս մեթոդը երաշխավորում է, որ հիշողության էջը ֆիզիկապես չի ապաբլոկացվի, մինչև ընթերցման շղթան չավարտի տվյալների պատճենումը:
Source: opennet.ru
