Kernel Linux 5.14

Kernel Linux 5.14

Piştî du mehan pêşveçûnê, Linus Torvalds danasîn berdana kernel Linux 5.14. Di nav guheztinên herî berbiçav de: bangên pergalê yên nû quotactl_fd () û memfd_secret (), rakirina ajokarên îde û xav, kontrolkera pêşîn a I/O ya nû ji bo cgroup, moda nexşandina peywirê SCHED_CORE, binesaziya çêkirina barkerên bernameya BPF-ya verastkirî.

Guhertoya nû 15883 rastkirinên ji 2002 pêşdebiran vedihewîne, mezinahiya patchê 69 MB e (guhertin bandor li 12580 pelan kir, 861501 rêzikên kodê hatin zêdekirin, 321654 rêz hatin jêbirin). Nêzîkî 47% ji hemî guhertinên ku di 5.14-ê de hatine destnîşan kirin bi ajokarên cîhazê ve girêdayî ne, nêzîkê 14% ji guhertinan bi nûvekirina koda taybetî ya mîmariya hardware ve girêdayî ne, 13% bi stûna torê ve girêdayî ne, 3% bi pergalên pelan ve girêdayî ne, û 3% bi bine pergalên kernelê yên navxweyî ve girêdayî ne.

sereke nûbûnên:

  • Pergala binpergala dîskê, têketin/derketin û pergalên pelan:
    • ji bo cgroup pêkanîn Kontrolkera pêşîn a I/O ya nû - rq-qos, ku dikare pêşaniya pêvajoyê ya daxwazên astengkirina cîhazên ku ji hêla endamên her cgroup ve têne hilberandin kontrol bike. Piştgiriya kontrolkera pêşîn a nû li nexşerêya I/O-ya mq-dawî hatiye zêdekirin;
    • li ser pergala pelê ext4 pêkanîn fermana nû ya ioctl EXT4_IOC_CHECKPOINT, ku hemî danûstendinên li bendê ji têketin û tamponên têkildar bi dîskê ferz dike, û di heman demê de devera ku ji hêla têketinê ve hatî bikar anîn di hilanînê de jî dinivîse. Guhertin di çarçoveya însiyatîfekê de hat amadekirin da ku pêşî li derçûna agahiyan ji pergalên pelan bigire;
    • li Btrfs destnîşan kir Optimîzasyonên performansê: Bi rakirina qeydkirina nehewce ya taybetmendiyên dirêjkirî di dema darvekirina fsync de, performansa operasyonên zirav bi taybetmendiyên dirêjkirî heya 17% zêde bû. Digel vê yekê, dema ku operasyonên birêkûpêk ên ku bandorê li dereceyan nakin dikin, hevdengkirina tevahî neçalak dibe, ku dema xebitandinê% 12 kêm dike. Mîhengek li sysfs-ê hate zêdekirin da ku dema ku FS-ê kontrol dike firehiya I/O bisînor bike. Bangên ioctl zêde kirin da ku betalkirina mezinahî û jêbirina operasyonên cîhazê;
    • di XFS de ji nû ve xebitandin pêkanîna cache tampon, ku ji bo veqetandina rûpelên bîranînê di moda hevîrê de tê veguheztin. Karbidestiya cache ya çêtir kirin;
    • F2FS vebijarkek zêde kir ku di moda tenê-xwendinê de bixebite û moda cachkirina bloka pêçandî (compress_cache) bicîh kir da ku performansa xwendina rasthatî baştir bike. Piştgirî ji bo berhevkirina pelên ku li ser bîranînê hatine nexşe kirin bi karanîna operasyona mmap () ve hatî bicîh kirin. Ji bo neçalakkirina hilbijartî komkirina pelan bi maske, vebijarkek nû ya mount nocompress hate pêşniyar kirin;
    • di ajokera exFAT de xebat hatiye kirin da ku hevahengiya bi hilanîna hin kamerayên dîjîtal re baştir bike;
    • banga sîstema added quotactl_fd(), ku destûrê dide te ku hûn kotayan ne bi pelek amûrek taybetî, lê bi destnîşankirina ravekerek pelê ya ku bi pergala pelê ya ku kota jê re tê sepandin ve girêdayî ye, birêve bibin;
    • Ajokarên kevn ên ji bo cîhazên blokê yên bi navgîniya IDE-ê ji kernelê hatine derxistin; ew ji mêj ve ji hêla binepergala libata ve hatine guheztin. Piştgiriya ji bo cîhazên kevn bi tevahî hatîye ragirtin, guheztin tenê bi karanîna ajokarên kevn ve têkildar e, dema ku bi karanîna wan ajokaran digotin /dev/hd*, û ne /dev/sd*;
    • Ajokara "xav" ji kernelê hat rakirin, bi navbeynkariya /dev/raw gihandina nebuffer ji bo astengkirina cîhazên peyda dike. Vê fonksiyonê demek dirêj di serlêdanên ku ala O_DIRECT bikar tînin de hatî bicîh kirin;
  • karûbarên bîranîn û pergalê:
    • moda plansazkirinê ya nû di nexşerêya peywirê de hatî bicîh kirin SCHED_CORE, ku dihêle hûn kontrol bikin ka kîjan pêvajo dikarin bi hev re li ser heman bingeha CPU-yê bimeşînin. Her pêvajoyek dikare nasnameyek cookie-yê ku qada pêbaweriyê di navbera pêvajoyan de diyar dike (mînak, aîdê heman bikarhêner an konteynerê) were destnîşankirin. Dema ku darvekirina kodê organîze dike, plansazkar dikare piştrast bike ku yek bingehek CPU tenê di nav pêvajoyên ku bi heman xwedan re têkildar in de were parve kirin, ku dikare were bikar anîn da ku hin êrîşên Specter asteng bike bi rêgirtina karên pêbawer û nebawer li ser heman mijara SMT (Hyper Threading). ;
    • ji bo mekanîzmaya cgroup, piştgirî ji bo operasyona kuştinê hatîye bicîh kirin, ku destûrê dide te ku hûn hemî pêvajoyên ku bi komê re têkildar in yekcar bikujin (SIGKILL bişînin) bi nivîsandina "1" li pela virtual cgroup.kill;
    • kapasîteyên berfirehkirî yên têkildarî bersivdayîna tespîtkirina qefleyên perçebûnê ("qefleyên perçebûyî") yên ku dema gihîştina daneya nelihevkirî ya di bîranînê de çêdibin ji ber vê yekê ku dema ku rêwerzek atomî tê meşandin, dane du xetên cache CPU-yê derbas dikin. Astengkirinek wusa dibe sedema kêmbûnek girîng a performansê, ji ber vê yekê berê mimkun bû ku bi zorê serlêdana ku bû sedema astengkirinê bi dawî bibe. Daxuyaniya nû parametreya rêza fermanê ya kernel "split_lock_detect=ratelimit:N" zêde dike, ku dihêle hûn li ser rêjeya operasyonên girtina serê saniyeyê sînorek li seranserê pergalê diyar bikin, piştî ku ji wê derbas bibe, her pêvajoyek ku bibe çavkaniya kilîtek dabeşkirî dê ji dêvla kutakirinê bi zorê 20 ms raweste;
    • Kontrolkera berfê ya cgroup CFS (kontrolkera bandê ya CFS), ku destnîşan dike ka çiqas wextê pêvajoyê dikare ji her cgroupê re were veqetandin, xwedan şiyana diyarkirina sînorên ku ji hêla heyamek diyarkirî ya çalakiyê ve têne sînordar kirin heye, ku rê dide rêziknameya çêtir a barkirinên dereng-hesas. Mînakî, danîna cpu.cfs_quota_us bo 50000 û cpu.cfs_period_us bo 100000 dê bihêle komek pêvajoyan her 100ms 50ms dema CPU winda bike;
    • zêde kirin binesaziya destpêkê ji bo afirandina barkerên bernameya BPF-ê, ku dê bêtir rê bide dakêşana tenê bernameyên BPF-ê yên ku bi mifteyek dîjîtal pêbawer hatine îmzekirin;
    • Operasyona futexê ya nû FUTEX_LOCK_PI2 zêde kir, ku demjimêrek monotonîk bikar tîne da ku wextê bihejmêre, ku dema ku pergalê di moda xewê de derbas kiriye hesab dike;
    • ji bo mîmariya RISC-V, piştgirî ji bo rûpelên bîranîna mezin (Rûpelên Mezin ên Transparent) û şiyana karanîna KFENCE naskirina xeletiyan dema ku bi bîranînê re dixebitin;
    • di banga pergala madvise() de, ku amûrek ji bo xweşbînkirina rêveberiya bîranîna pêvajoyê peyda dike, zêde kirin Alên MADV_POPULATE_READ û MADV_POPULATE_WRITE ji bo afirandina "xeletiya rûpelê" li ser hemî rûpelên bîranînê yên ku ji bo xebatên xwendin û nivîsandinê hatine nexşe kirin, bêyî ku xwendinek an nivîsandina rastîn pêk bînin (prefault). Bikaranîna alayan dikare ji bo kêmkirina dereng di pêkanîna bernameyê de bikêr be, bi saya pêkanîna proaktîf a hilgirê "xeletiya rûpelê" ji bo hemî rûpelên ne veqetandî bi yekcarî, bêyî ku li benda gihîştina rastîn a wan bimîne;
    • di pergala ceribandina yekîneyê de kunit zêde kirin piştgirî ji bo ceribandinên li hawîrdora QEMU;
    • şopînerên nû lê zêde kirin: "osnoise" ji bo şopandina derengiyên serîlêdanê yên ku ji ber destwerdana navberê çêdibin, û "timerlat" ji bo nîşandana agahdariya hûrgulî di derbarê derengiyan de dema ku ji sînyala demjimêrê hişyar dibe;
  • virtualkirin û ewlehî:
    • zêde kirin banga sîstema memfd_secret(), ku dihêle hûn di cîhek navnîşek veqetandî de deverek bîranîna taybet biafirînin, ku tenê ji pêvajoya xwedan re xuya dibe, di pêvajoyên din de nayê xuyang kirin û rasterast nagihîje kernelê;
    • di pergala fîlterkirina bangê ya pergala seccomp de, dema ku hilgirên kilîtkirinê di cîhê bikarhêner de vediguhezînin, gengaz e ku meriv yek operasyonek atomî bikar bîne da ku ji bo peywirek veqetandî ravekerek pelê biafirîne û dema ku bangek pergalê digire vegerîne. Operasyona pêşniyarkirî çareser dike pirsgirêk bi qutbûna destkarê di cîhê bikarhêner de dema ku sînyalek tê;
    • zêde kirin mekanîzmaya nû ji bo birêvebirina sînorkirina çavkaniyê di nav qada navên nasnameya bikarhêner de, ku jimarvanên rlimit yên takekesî bi bikarhênerek di "qada navê bikarhêner" de girêdide. Gava ku bikarhênerek pêvajoyên di konteynerên cihêreng de dimeşîne, bi karanîna jimareyên çavkaniyê yên hevpar re pirsgirêk çareser dike;
    • hîpervisorê KVM-ê ji bo pergalên ARM64 qabiliyeta karanîna dirêjkirina MTE (MemTag, Berfirehkirina Nîşankirina Bîrê) di pergalên mêvan de zêde kiriye, ku dihêle hûn etîketan bi her operasyona veqetandina bîranînê ve girêbidin û kontrolkirina karanîna rast a nîşankeran organîze bikin da ku îstîsmarê asteng bikin. qelsiyên ku ji ber gihîştina blokên bîranînê yên ku berê hatine azad kirin, tamponên zêde, gihîştina berî destpêkirinê û karanîna li derveyî çarçoweya heyî;
    • Nasnameya Pointer-ê ku ji hêla platforma ARM64 ve hatî peyda kirin naha dikare ji bo kernel û cîhê bikarhêner ji hev cuda were mîheng kirin. Teknolojî dihêle hûn rêwerzên ARM64-ê yên pispor bikar bînin da ku navnîşanên vegerê bi karanîna îmzeyên dîjîtal ên ku di bitên jorîn ên nayên bikar anîn de têne hilanîn bikar bînin;
    • di Linux-moda Bikarhêner de zêde kirin piştgiriya ji bo bikaranîna ajokarên ji bo cîhazên PCI bi otobusek PCI ya virtual, ku ji hêla ajokera PCI-ser-virtio ve hatî bicîh kirin;
    • ji bo pergalên x86, ji bo cîhaza paravirtualized virtio-iommu piştgirî zêde kir, ku destûrê dide te ku hûn daxwazên IOMMU, wek ATTACH, DETACH, MAP û UNMAP, li ser veguheztina virtio bişînin bêyî ku tabloyên rûpela bîranînê bişopînin;
    • Ji bo CPU-yên Intel, ji malbata Skylake bigire heya Gola Kawa, karanîna Intel TSX (Pêvekirinên Hevdengkirina Transactional), ku amûran ji bo baştirkirina performansa sepanên pir-mijarî peyda dike bi rakirina dînamîkî ya operasyonên hevdemkirinê yên nehewce, ji hêla xwerû ve neçalak e. Ji ber îhtîmala êrîşan dirêjkirin seqet in Zombieload, manîpulekirina rijandina agahiyê bi riya kanalên sêyemîn ên ku di dema xebitandina mekanîzmaya qutkirina asynchronous ya operasyonan de pêk tê (TAA, TSX Asynchronous Abort);
  • jêrpergala torê:
    • entegrasyona domdar di bingeha MPTCP (MultiPath TCP), dirêjkirina protokola TCP-ê ya ji bo organîzekirina xebata pêwendiyek TCP-ê digel radestkirina pakêtan bi hevdemî li ser çend rêgezan bi navgînên torê yên cihêreng ên ku bi navnîşanên IP-yê yên cihêreng ve girêdayî ne. Di hejmara nû de zêde kirin mekanîzmayek ku ji bo IPv4 û IPv6 (polîtîkaya hash-ê ya pir rê) polîtîkayên xweyên şêlandinê yên trafîkê danîne, ku ji cîhê bikarhênerê mimkun dike ku diyar bike ka kîjan zeviyên pakêtan, tevî yên dorpêçkirî, dê werin bikar anîn dema ku hash-ê ku bijartina rê diyar dike, were bikar anîn. ji bo pakêtê;
    • piştgiriya soketê li virtio veguhastina virtual zêde bûye SOCK_SEQPACKET (ragihandina bi rêkûpêk û pêbawer a datagraman);
    • Kapasîteyên mekanîzmaya soketê SO_REUSEPORT hatine berfireh kirin, ku dihêle çend soketên guhdarîkirinê bi carekê ve bi yek portê ve girêbidin da ku bi belavkirina daxwazên hatinê re hevdem li ser hemî soketên ku bi SO_REUSEPORT ve girêdayî ne, ku çêkirina serîlêdanên servera pir-tehlî hêsan dike, girêdan bistînin. . Di guhertoya nû de zêde kirin tê wateya ji bo veguheztina kontrolê li ser soketek din di rewşek têkçûyî de dema ku daxwazek ji hêla soketa destpêkê ve hatî hilbijartin veguhezîne (Pirsgirêka windabûna girêdanên kesane dema ku karûbar ji nû ve dest pê dike çareser dike);
  • xemil:
    • di ajokerê amdgpu de pêkanîn piştgirî ji bo rêza GPU-ya nû ya AMD Radeon RX 6000, bi navê kod "Beige Goby" (Navi 24) û "Karp zer", û hem jî ji bo Aldebaran GPU (gfx90a) û Van Gogh APU-ya çêtir piştgirî. Kapasîteya ku bi hevdemî bi çend panelên eDP re bixebite zêde kir. Ji bo APU Renoir, piştgirî ji bo xebata bi tamponên şîfrekirî yên di bîranîna vîdyoyê de (TMZ, Zona Bîra pêbawer) hatîye bicîh kirin. Piştgiriya ji bo kartên grafikên germ-veqetandî zêde kir. Ji bo GPU-yên Radeon RX 6000 (Navi 2x) û GPU-yên kevntir ên AMD, piştgirî ji bo mekanîzmaya hilanîna hêzê ya ASPM (Rêveberiya Hêza Dewleta Çalak) ji hêla xwerû ve hatî çalak kirin, ku berê tenê ji bo GPU-yên Navi 1x, Vega û Polaris çalak bû;
    • ji bo çîpên AMD, piştgirî ji bo bîranîna virtual ya hevpar (SVM, bîranîna virtual ya hevpar) li ser bingeha binepergala HMM (Rêveberiya bîranîna Heterogeneous) hatiye zêdekirin, ku destûrê dide karanîna amûrên bi yekîneyên rêveberiya bîranîna xwe (MMU, yekîneya rêveberiya bîranînê), ku dikare bigihîje bîra sereke. Tevlî karanîna HMM-ê, hûn dikarin cîhek navnîşek hevpar a di navbera GPU û CPU de organîze bikin, ku tê de GPU dikare bigihîje bîranîna sereke ya pêvajoyê;
    • piştgiriya teknolojiya destpêkê zêde kir AMD Smart Shift, ya ku bi dînamîk parametreyên xerckirina hêzê ya CPU û GPU li ser laptopan bi chipset û qerta grafîkê ya AMD-ê diguhezîne da ku performansê di dema lîstikê, guherandina vîdyoyê û pêşkêşkirina 3D de zêde bike;
    • di ajokera i915 de ji bo kartên vîdyoyê yên Intel tê de piştgiriya ji bo chips Intel Alderlake P;
    • ajokera drm/hyperv ji bo adapterê grafikên virtual yên Hyper-V;
    • zêde kirin Ajokera grafîkê ya simpledrm ku ji bo derketinê EFI-GOP an framebuffera VESA-yê ku ji hêla firmware UEFI an BIOS-ê ve hatî peyda kirin bikar tîne. Armanca sereke ya ajokerê ew e ku di qonaxên destpêkê yên bootê de kapasîteyên hilberîna grafîkî peyda bike, berî ku ajokerek tevahî DRM were bikar anîn. Di heman demê de ajokar dikare wekî çareseriyek demkî ji bo alavên ku hîna ajokarên DRM-ya xwecî tune ne jî were bikar anîn;
    • zêde kirin piştgiriya komputerê hemî-di-yek Raspberry Pi 400;
    • Ajokera nepenîtiyê ya dell-wmi-yê lê zêde kir ku piştgirî bide guhêrbarên hardware yên kamera û mîkrofonê yên ku di laptopên Dell de hene;
    • ji bo laptopên Lenovo zêde kirin Navbera WMI ji bo guhertina parametreyên BIOS-ê bi riya sysfs /sys/class/firmware-attributes/;
    • berfireh kirin piştgirî ji bo cîhazên bi navgîniya USB4;
    • zêde kirin piştgirî ji bo kartên deng û kodekan AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 û Texas Instruments TAS2505. Piştgiriya dengî ya li ser laptopên HP û ASUS-ê çêtir kirin. Zêde kirin pêçan ji bo kêmkirina derengan berî ku deng li ser cîhazên bi navgîniya USB-ê dest bi lîstin bike.

Çavkanî - opennet.ru.

Source: linux.org.ru