Linux kernel 5.14

Linux kernel 5.14

Mushure memwedzi miviri yebudiriro, Linus Torvalds kuunzwa kernel release Linux 5.14. Pakati peshanduko dzinonyanya kukosha: nyowani quotactl_fd () uye memfd_secret () system mafoni, kubviswa kweide uye madhiraivha akaomeswa, mutsva weI/O anotungamira mutongi weboka, SCHED_CORE basa rekuronga maitiro, zvivakwa zvekugadzira zvakasimbiswa BPF chirongwa chinorodha.

Iyo itsva vhezheni inosanganisira 15883 inogadzirisa kubva kune 2002 vanogadzira, iyo chigamba saizi i69 MB (shanduko dzakakanganisa mafaera gumi nemaviri, 12580, 861501 mitsetse yekodhi yakawedzerwa, 321654 mitsetse yakabviswa). Inenge 47% yeshanduko dzese dzakaunzwa mu5.14 dzine hukama nevatyairi vemidziyo, ingangoita 14% yeshanduko ine chekuita nekuvandudza kodhi yakanangana nehardware architecture, 13% ine chekuita netiweki stack, 3% ine hukama nemafaira masisitimu, uye 3% zvine hukama nemukati kernel subsystems.

chikuru zvitsva:

  • disk subsystem, yekupinda / kubuda uye mafaera masisitimu:
    • zve cgroup itwa itsva I/O inotungamira controller - rq-qos, iyo inogona kudzora kugadzirisa kwekutanga kwezvikumbiro zvekuvharisa zvishandiso zvinogadzirwa nenhengo dzeboka rega rega. Rutsigiro rutsva rwekukosha kwemutongi rwakawedzerwa kune mq-yekupedzisira I/O scheduler;
    • pane ext4 faira system itwa new ioctl command EXT4_IOC_CHECKPOINT, iyo inomanikidza zvese zvakamirira transaction kubva kurogi uye yakabatana mabuffers kudhisiki, uye zvakare inodarika nzvimbo inoshandiswa nerogi mukuchengetedza. Shanduko yakagadziridzwa sechikamu chedanho rekudzivirira kubuda kweruzivo kubva kumafaira emafaira;
    • muBtrfs kuunzwa Performance optimizations: Nekubvisa kudhirowa kusingakoshi kweakawedzera hunhu panguva yefsync kuuraya, kuita kwekushanda kwakasimba neakawedzera hunhu kwakawedzera kusvika 17%. Pamusoro pezvo, kana uchiita mabasa ekucheka asingakanganise zviyero, kuwiriranisa kwakazara kunovharwa, izvo zvakaderedza nguva yekuvhiya ne12%. Chimiro chakawedzerwa kune sysfs kudzikamisa I/O bandwidth kana uchitarisa iyo FS. Yakawedzera ioctl mafoni ekukanzura resizi uye kudzima mashandiro echishandiso;
    • mu XFS reworked kushandiswa kwebhafa cache, iyo inoendeswa kune kugoverwa kwemapeji ekuyeuka mubatch mode. Kuvandudza cache kushanda zvakanaka;
    • F2FS yakawedzera sarudzo yekushanda mukuverenga-chete modhi uye yakamisa yakadzvanywa block caching modhi (compress_cache) kuti uvandudze kuita kwekuverenga. Tsigiro yakaitwa yekumanikidza mafaera akamisikidzwa kundangariro uchishandisa mmap () mashandiro. Kuti usarudze kudzima kudzvanywa kwefaira nemasiki, imwe nyowani yekukwira sarudzo nocompress yakatsanangurwa;
    • basa rakaitwa mumutyairi weexFAT kuvandudza kuenderana nekuchengetwa kwemamwe makamera edhijitari;
    • akawedzera system call quotactl_fd(), iyo inokutendera iwe kuti utore quotas kwete kuburikidza neakakosha mudziyo faira, asi nekutsanangura faira descriptor yakabatana neiyo faira system iyo iyo quota inoshandiswa;
    • Madhiraivha ekare emidziyo yeblock ine IDE interface yakabviswa kubva kukernel; ivo vagara vatsiviwa neiyo libata subsystem. Tsigiro yemidziyo yekare yakachengetwa yakazara, shanduko dzinongobata chete kugona kushandisa vatyairi vekare, kana uchishandisa iyo madhiraivha akanzi / dev/hd *, uye kwete / dev/sd *;
    • Mutyairi "mbishi" akabviswa mu kernel, achipa mukana usina kuvharwa wekuvhara zvishandiso kuburikidza ne /dev/raw interface. Kushanda uku kwagara kuchiitwa mumashandisirwo uchishandisa O_DIRECT mureza;
  • memory uye system masevhisi:
    • nzira itsva yekuronga yaitwa mugadziri webasa SCHED_CORE, iyo inokutendera iwe kudzora kuti ndeapi maitiro anogona kumhanya pamwechete pane imwechete CPU musimboti. Maitiro ega ega anogona kupihwa cookie identifier inotsanangura chiyero chekuvimba pakati pemaitiro (semuenzaniso, wemushandisi mumwechete kana mudziyo). Pakuronga kuurayiwa kwekodhi, mugadziri anogona kuona kuti imwe CPU musimboti inogovaniswa chete pakati pemaitiro ane hukama nemuridzi mumwechete, anogona kushandiswa kuvharidzira kumwe kurwiswa kweSpecter nekudzivirira akavimbika uye asingavimbike mabasa kubva pakumhanya pane imwechete SMT (Hyper Threading) tambo. ;
    • kune iyo cgroup mechanism, tsigiro yekuuraya yakaitwa, iyo inokutendera kuti uuraye maitiro ese ane chekuita neboka kamwechete (tumira SIGKILL) nekunyora "1" kune chaiyo faira cgroup.kill;
    • yakawedzera masimba ane chekuita nekupindura kuoneswa kweakatsemura makiyi ("kupatsanurwa kukiya") kunoitika kana uchiwana isina kurongeka data mundangariro nekuda kwekuti kana uchiita rairo yeatomu, iyo data inoyambuka miviri yeCPU cache mitsetse. Kuvharira kwakadaro kunotungamira mukudonha kwakakosha mukuita, saka kare zvaigoneka kumisa nechisimba application yakakonzera kuvharika. Kuburitswa kutsva kunowedzera kernel command line parameter "split_lock_detect=ratelimit:N", iyo inokutendera kuti utsanangure muganho wesystem-wide pachiyero chekuvhara mashandiro pasekondi, mushure mekupfuura iyo chero maitiro akazova sosi yekukiya kukiya. kumanikidzwa kumira kwe20 ms pane kugumisa;
    • Iyo cgroup bandwidth controller CFS (CFS bandwidth controller), iyo inosarudza kuti ingani processor nguva inogona kugoverwa kune rimwe nerimwe boka, ine kugona kutsanangura miganhu inoganhurwa neyakapihwa nguva yekuita, iyo inobvumira zvirinani kudzora kwe latency-sensitive mitoro. Semuenzaniso, kuseta cpu.cfs_quota_us to 50000 uye cpu.cfs_period_us kusvika 100000 zvinobvumira boka remaitiro kutambisa 100ms yeCPU nguva 50ms yega yega;
    • akawedzera yekutanga zvivakwa zvekugadzira BPF chirongwa chinorodha, icho chinozobvumidza kurodha kwezvirongwa zveBPF chete zvakasainwa nekiyi yakavimbika yedhijitari;
    • yakawedzera futex operation itsva FUTEX_LOCK_PI2, iyo inoshandisa monotonic timer kuverenga nguva, iyo inofunga nezvenguva inoshandiswa nehurongwa muhope mode;
    • yeRISC-V architecture, tsigiro yemapeji makuru endangariro (Transparent Huge-Mapeji) uye kugona kushandisa KFENCE kuziva zvikanganiso kana uchishanda nendangariro;
    • mu madvise () system call, iyo inopa nzira yekukwidziridza maitiro ekurangarira manejimendi, akawedzera MADV_POPULATE_READ uye MADV_POPULATE_WRITE mireza kugadzira "peji kukanganisa" pamapeji ese ekurangarira akamepurwa kuverenga kana kunyora mabasa, pasina kuverenga chaiko kana kunyora (prefault). Kushandiswa kwemireza kunogona kubatsira mukuderedza kunonoka mukuitwa kwechirongwa, nekuda kwekuita kwekuita kwe "peji kukanganisa" mugadziri wemapeji ese asina kugoverwa kamwechete, pasina kumirira kuwana chaiko kwavari;
    • mune imwe unit test system kunit akawedzera rutsigiro rwekumhanyisa bvunzo munzvimbo yeQEMU;
    • vatsvaki vatsva vakawedzera: "osnoise"kutevera kunonoka kwekushandisa kunokonzerwa nekukanganisa kubata, uye" timerlat " kuratidza ruzivo rwakadzama nezve kunonoka kana uchimuka kubva kuchiratidzo chenguva;
  • virtualization uye chengetedzo:
    • akawedzera system call memfd_secret(), iyo inokubvumira kuti ugadzire nzvimbo yekuyeuka yakavanzika mune imwe nzvimbo yekero yega, inoonekwa chete kumuridzi maitiro, asingaonekwi mune mamwe maitiro uye asingasviki zvakananga kune kernel;
    • mu seccomp system call filtering system, kana uchifambisa zvibatiso zvekiyi munzvimbo yevashandisi, zvinokwanisika kushandisa imwe atomu kushanda kugadzira tsananguro yefaira yebasa rakasarudzika uye kuidzosera kana uchigadzira kufona system. Kushanda kwakarongwa kunogadzirisa dambudziko nekuvhiringwa kwemubati munzvimbo yemushandisi kana chiratidzo chasvika;
    • akawedzera nzira itsva kubata zvigadziriso zvemushandisi mushandisi ID namespace, iyo inosunga ega ega rlimit counters kumushandisi mu "user namespace". Shanduko inogadzirisa dambudziko nekushandiswa kweakajairwa zviwanikwa zviverengero kana mumwe mushandisi achimhanyisa maitiro mumidziyo yakasiyana;
    • iyo KVM hypervisor yeARM64 masisitimu yakawedzera kugona kushandisa iyo MTE (MemTag, Memory Tagging Extension) yekuwedzera mune yevaenzi masisitimu, ayo anobvumidza iwe kusunga ma tag kune yega yega yekugovera ndangariro mashandiro uye kuronga kutarisa kushandiswa kwakakodzera kweanongedzo kuvharira kushandiswa kusasimba kunokonzerwa nekuwana yakatosunungurwa ndangariro mabhuraki, mafashama buffers, kuwana isati yatanga uye kushandisa kunze kwemamiriro azvino;
    • Kusimbiswa kwePointer kwakapihwa neArM64 papuratifomu ikozvino inogona kugadzirwa zvakasiyana kune kernel nenzvimbo yemushandisi. Iyo tekinoroji inokutendera iwe kushandisa yakasarudzika ARM64 mirairo yekuona kero dzekudzoka uchishandisa siginecha yedhijitari inochengetwa mumabhiti ekumusoro asina kushandiswa einongedza pachayo;
    • muMushandisi-modhi Linux akawedzera tsigiro yekushandiswa kwevatyairi vePCI zvishandiso zvine chaiyo PCI bhazi, rinoitwa nePCI-over-virtio driver;
    • ye x86 masisitimu, yakawedzera tsigiro yevirtio-iommu paravirtualized mudziyo, iyo inokutendera kuti utumire zvikumbiro zveIOMMU, senge ATTACH, DETACH, MAP uye UNMAP, pamusoro pechifambiso chevirtio pasina kutevedzera matafura emapeji endangariro;
    • Kune Intel CPUs, kubva kumhuri yeSkylake kuenda kuKofi Lake, kushandiswa kweIntel TSX (Transactional Synchronization Extensions), iyo inopa maturusi ekuvandudza mashandiro ezvishandiso zvine tambo dzakawanda nekubvisa zvine simba mashandiro ekubatanidza asina basa, akaremara nekukasira. Mawedzero akaremara nekuda kwekugona kurwiswa Zombieload, kushandura kuburitswa kweruzivo kuburikidza nevechitatu-bato chiteshi chinoitika panguva yekushanda kwechigadziriso cheasynchronous kukanganiswa kwekushanda (TAA, TSX Asynchronous Abort);
  • network subsystem:
    • yakaramba ichibatanidzwa munheyo yeMPTCP (MultiPath TCP), kuwedzerwa kweTCP protocol yekuronga kushanda kweTCP yekubatanidza nekuendeswa kwepakiti panguva imwe chete munzira dzakawanda kuburikidza netiweki yakasiyana-siyana inosanganiswa nekero dzakasiyana dzeIP. Muchinyorwa chitsva akawedzera nzira yekuseta yako wega traffic hashing policy ye IPv4 uye IPv6 (multipath hash policy), zvichiita kuti zvibvirire kubva panzvimbo yemushandisi kuona kuti ndeapi minda mumapaketi, kusanganisira akavharirwa, achashandiswa pakuverenga hashi inosarudza sarudzo yenzira. nokuda kwepakiti;
    • socket support yakawedzerwa kune virtual transport virtio SOCK_SEQPACKET (yakarongeka uye yakavimbika kuendesa datagrams);
    • Kugona kweSO_REUSEPORT socket mechanism kwakawedzerwa, izvo zvinobvumira zvigadziko zvakati zvekuteerera kuti zvibatanidze kune imwe chiteshi kamwechete kuti ugamuchire hukama nekugoverwa kwezvikumbiro zvinouya panguva imwe chete pazvigadziko zvose zvakabatanidzwa kuburikidza neSO_REUSEPORT, iyo inorerutsa kusikwa kwema-multi-threaded server applications. . Mushanduro itsva akawedzera zvinoreva kuendesa kutonga kune imwe soketi kana ikatadza kugadzirisa chikumbiro nesoketi yakasarudzwa (inogadzirisa dambudziko nekurasikirwa kwekubatana kwega kana kutangazve masevhisi);
  • midziyo:
    • mune amdgpu driver itwa rutsigiro rweiyo AMD Radeon RX 6000 nhevedzano yeGPUs, codenamed "Beige Goby" (Navi 24) uye "Yellow Carp", pamwe nerutsigiro rwakavandudzwa rweAldebaran GPU (gfx90a) uye Van Gogh APU. Yakawedzera kugona kushanda panguva imwe chete neanoverengeka eDP mapaneru. Kune APU Renoir, tsigiro yekushanda nemabhafa akavharidzirwa mundangariro yevhidhiyo (TMZ, Trusted Memory Zone) yaitwa. Yakawedzera tsigiro yemakadhi ekupisa-unplug emifananidzo. Kune Radeon RX 6000 (Navi 2x) maGPU uye ekare AMD GPUs, tsigiro yeASPM (Active State Power Management) nzira yekuchengetedza simba inogoneswa nekusarudzika, iyo yaimbogoneswa chete Navi 1x, Vega uye Polaris GPUs;
    • ye AMD machipisi, tsigiro yekugovaniswa virtual memory (SVM, yakagovaniswa virtual memory) yakawedzerwa zvichibva paHMM (Heterogeneous memory management) subsystem, iyo inobvumira kushandiswa kwemidziyo ine yavo yekurangarira manejimendi zvikamu (MMU, memory management unit), iyo inogona kuwana main memory. Kusanganisira kushandisa HMM, unogona kuronga nzvimbo yekero yakagovaniswa pakati peGPU neCPU, umo iyo GPU inogona kuwana iyo huru yekurangarira maitiro;
    • yakawedzera yekutanga tekinoroji rutsigiro AMD Smart Shift, iyo inoshandura zvine simba maparamita ekushandisa simba eCPU neGPU pamalaptops ane chipset uye AMD giraidhi kadhi kuti uwedzere kuita kana uchitamba, vhidhiyo kugadzirisa uye 3D kupa;
    • mune i915 mutyairi weIntel vhidhiyo makadhi zvaisanganisira rutsigiro rweIntel Alderlake P chips;
    • akawedzera drm/hyperv mutyairi weHyper-V virtual graphics adapta;
    • akawedzera simpledrm graphics driver inoshandisa EFI-GOP kana VESA framebuffer yakapihwa neEFI firmware kana BIOS yekubuda. Chinangwa chikuru chemutyairi ndechekupa graphical kubuda kwekuita panguva dzekutanga nhanho dzebhoti, isati yazara DRM mutyairi anogona kushandiswa. Mutyairi anogona zvakare kushandiswa semhinduro yenguva pfupi yemidziyo isati yave nevatyairi veDRM;
    • akawedzera zvese-mune-imwe komputa rutsigiro Raspberry Pi 400;
    • Yakawedzera dell-wmi-yakavanzika mutyairi kutsigira kamera uye maikorofoni hardware switch inosanganisirwa muDell laptops;
    • yeLenovo laptops akawedzera WMI interface yekushandura BIOS paramita kuburikidza ne sysfs /sys/class/firmware-attributes/;
    • expanded rutsigiro rwemidziyo ine USB4 interface;
    • akawedzera tsigiro yemakadhi enzwi uye macodecs AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 uye Texas Instruments TAS2505. Yakavandudzwa tsigiro yekuteerera paHP uye ASUS malaptop. Added zvigamba kuderedza kunonoka odhiyo isati yatanga kutamba pamidziyo ine USB interface.

Kunobva - opennet.ru.

Source: linux.org.ru