Linux 5.14 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds iepazÄ«stināja ar Linux kodola 5.14 izlaiÅ”anu. Starp ievērojamākajām izmaiņām: jauni quotactl_fd() un memfd_secret() sistēmas izsaukumi, ide un raw draiveru noņemÅ”ana, jauns I/O prioritātes kontrolleris cgroup, SCHED_CORE uzdevumu plānoÅ”anas režīms, infrastruktÅ«ra verificētu BPF programmu ielādētāju izveidei.

Jaunajā versijā ir iekļauti 15883 2002 labojumi no 69 izstrādātājiem, ielāpa izmērs ir 12580 MB (izmaiņas skāra 861501 321654 failus, tika pievienota 47 5.14 koda rindiņa, dzēstas 14 13 rindiņas). Aptuveni 3% no visām izmaiņām, kas ieviestas 3 versijā, ir saistÄ«tas ar ierīču draiveriem, aptuveni XNUMX% no izmaiņām ir saistÄ«tas ar aparatÅ«ras arhitektÅ«rām raksturÄ«gā koda atjaunināŔanu, XNUMX% ir saistÄ«tas ar tÄ«kla steku, XNUMX% ir saistÄ«tas ar failu sistēmām un XNUMX% ir saistÄ«ti ar iekŔējām kodola apakÅ”sistēmām.

Galvenie jauninājumi:

  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • Cgrupām ir ieviests jauns I/O prioritāŔu kontrolieris, rq-qos, kas var kontrolēt katras cgrupas dalÄ«bnieku Ä£enerēto ierīču bloÄ·Ä“Å”anas pieprasÄ«jumu apstrādes prioritāti. Mq-deadline I/O plānotājam ir pievienots jauns prioritātes kontrollera atbalsts.
    • Ext4 failu sistēma ievieÅ” jaunu ioctl komandu EXT4_IOC_CHECKPOINT, kas liek visiem neapstiprinātajiem darÄ«jumiem no žurnāla un ar tiem saistÄ«tajiem buferiem izskalot diskā, kā arÄ« pārraksta apgabalu, ko žurnāls izmanto krātuvē. Izmaiņas tika sagatavotas kā daļa no iniciatÄ«vas, lai novērstu informācijas noplÅ«di no failu sistēmām.
    • Btrfs ir veiktas veiktspējas optimizācijas: novērÅ”ot nevajadzÄ«gu paplaÅ”ināto atribÅ«tu reÄ£istrÄ“Å”anu fsync izpildes laikā, intensÄ«vu darbÄ«bu veiktspēja ar paplaÅ”inātiem atribÅ«tiem ir palielinājusies lÄ«dz pat 17%. Turklāt, veicot apgrieÅ”anas darbÄ«bas, kas neietekmē apmērus, tiek atspējota pilna sinhronizācija, kas samazināja darbÄ«bas laiku par 12%. Sysf ir pievienots iestatÄ«jums, lai ierobežotu I/O joslas platumu, pārbaudot FS. Pievienoti ioctl zvani, lai atceltu ierÄ«ces izmēru maiņas un dzÄ“Å”anas darbÄ«bas.
    • XFS ir pārveidota bufera keÅ”atmiņas ievieÅ”ana, kas ir pārslēgta uz atmiņas lapu pieŔķirÅ”anu pakeÅ”u režīmā. Uzlabota keÅ”atmiņas efektivitāte.
    • F2FS pievieno opciju darbam tikai lasÄ«Å”anas režīmā un ievieÅ” saspiestu bloku keÅ”atmiņas režīmu (compress_cache), lai uzlabotu nejauÅ”as lasÄ«Å”anas veiktspēju. Ir ieviests atbalsts atmiņā saglabāto failu saspieÅ”anai, izmantojot operāciju mmap(). Lai selektÄ«vi atspējotu failu saspieÅ”anu, pamatojoties uz masku, ir piedāvāta jauna montāžas opcija nocompress.
    • Ir veikts darbs exFAT draiverÄ«, lai uzlabotu saderÄ«bu ar dažām digitālo kameru krātuvēm.
    • Pievienots quotactl_fd() sistēmas izsaukums, kas ļauj pārvaldÄ«t kvotas nevis izmantojot Ä«paÅ”u ierÄ«ces failu, bet gan norādot faila deskriptoru, kas saistÄ«ts ar failu sistēmu, kurai kvota tiek piemērota.
    • Vecie draiveri blokierÄ«cēm ar IDE interfeisu ir izņemti no kodola, tos jau sen ir aizstājusi libata apakÅ”sistēma.
    • "Raw" draiveris ir noņemts no kodola, nodroÅ”inot nebuferētu piekļuvi bloķētajām ierÄ«cēm, izmantojot /dev/raw saskarni. Å Ä« funkcionalitāte jau sen ir ieviesta lietojumprogrammās, kas izmanto karogu O_DIRECT.
  • Atmiņas un sistēmas pakalpojumi
    • Uzdevumu plānotājs ievieÅ” jaunu plānoÅ”anas režīmu SCHED_CORE, kas ļauj kontrolēt, kurus procesus var izpildÄ«t kopā vienā CPU kodolā. Katram procesam var pieŔķirt sÄ«kdatņu identifikatoru, kas nosaka uzticÄ«bas apjomu starp procesiem (piemēram, piederÄ«bu vienam lietotājam vai konteineram). Organizējot koda izpildi, plānotājs var nodroÅ”ināt, ka viens CPU kodols tiek koplietots tikai starp procesiem, kas saistÄ«ti ar vienu un to paÅ”u Ä«paÅ”nieku, ko var izmantot, lai bloķētu dažus Spectre uzbrukumus, neļaujot uzticamiem un neuzticamiem uzdevumiem darboties tajā paŔā SMT (Hyper Threading) pavedienā. .
    • AttiecÄ«bā uz cgroup ir ieviests kill darbÄ«bas atbalsts, kas ļauj uzreiz nogalināt visus ar grupu saistÄ«tos procesus (nosÅ«tÄ«t SIGKILL), virtuālajā failā cgroup.kill ierakstot ā€œ1ā€.
    • PaplaÅ”inātas iespējas, kas saistÄ«tas ar reaģēŔanu uz dalÄ«tu slēdzeņu (ā€œsadalÄ«tu slēdzeņuā€) noteikÅ”anu, kas rodas, piekļūstot nesaskaņotiem datiem atmiņā, jo, izpildot atomu instrukciju, dati Ŕķērso divas CPU keÅ”atmiņas lÄ«nijas. Šāda bloÄ·Ä“Å”ana izraisa ievērojamu veiktspējas kritumu, tāpēc iepriekÅ” bija iespējams piespiedu kārtā pārtraukt lietojumprogrammu, kas izraisÄ«ja bloÄ·Ä“Å”anu. Jaunajā laidienā ir pievienots kodola komandrindas parametrs ā€œsplit_lock_detect=ratelimit:Nā€, kas ļauj definēt sistēmas mēroga ierobežojumu bloÄ·Ä“Å”anas operāciju ātrumam sekundē, pēc kura pārsniegÅ”anas jebkurÅ” process, kas kļuvis par dalÄ«tās bloÄ·Ä“Å”anas avotu. bÅ«s spiesti apstāties uz 20 ms, nevis pārtraukt.
    • Cgroup joslas platuma kontrolieris CFS (CFS joslas platuma kontrolieris), kas nosaka, cik daudz procesora laika var atvēlēt katrai cgrupai, ievieÅ” iespēju definēt laika ierobežojumus, kas ļauj labāk regulēt latentuma jutÄ«gas darba slodzes. Piemēram, iestatot cpu.cfs_quota_us uz 50000 un cpu.cfs_period_us uz 100000, procesu grupa ik pēc 100 ms ļaus iztērēt 50 ms CPU laika.
    • Pievienota sākotnējā infrastruktÅ«ra BPF programmu ielādētāju izveidei, kas turpmāk ļaus ielādēt tikai BPF programmas, kas parakstÄ«tas ar uzticamu digitālo atslēgu.
    • Pievienota jauna futex operācija FUTEX_LOCK_PI2, kas izmanto monotonu taimeri, lai aprēķinātu taimautu, kas ņem vērā laiku, ko sistēma pavada miega režīmā.
    • RISC-V arhitektÅ«rai ir ieviests atbalsts lielām atmiņas lapām (Transparent Huge-Pages) un iespēja izmantot KFENCE mehānismu, lai atklātu kļūdas, strādājot ar atmiņu.
    • Sistēmas izsaukums madvise(), kas nodroÅ”ina procesa atmiņas pārvaldÄ«bas optimizÄ“Å”anas lÄ«dzekli, ir pievienojis karodziņus MADV_POPULATE_READ un MADV_POPULATE_WRITE, lai Ä£enerētu "lapas kļūdu" visās atmiņas lapās, kas kartētas lasÄ«Å”anas vai rakstÄ«Å”anas operācijām, neveicot faktisku lasÄ«Å”anu vai rakstÄ«Å”anu. (priekÅ”noklusējums). Karogu izmantoÅ”ana var bÅ«t noderÄ«ga, lai samazinātu programmas izpildes aizkavÄ“Å”anos, jo "lapas kļūdas" apstrādātājs tiek aktÄ«vi izpildÄ«ts visām nepieŔķirtajām lapām vienlaikus, negaidot faktisko piekļuvi tām.
    • Kunit vienÄ«bas testÄ“Å”anas sistēmai ir pievienots atbalsts testu veikÅ”anai QEMU vidē.
    • Ir pievienoti jauni marÄ·ieri: "osnoise", lai izsekotu lietojumprogrammu kavējumiem, ko izraisa pārtraukumu apstrāde, un "taimerlats", lai parādÄ«tu detalizētu informāciju par aizkavi, kad pamoÅ”anās no taimera signāla.
  • Virtualizācija un droŔība
    • Sistēmas izsaukums memfd_secret() ir pievienots, lai izveidotu privātu atmiņas apgabalu izolētā adreÅ”u telpā, kas ir redzama tikai Ä«paÅ”nieka procesam, netiek atspoguļota citos procesos un nav tieÅ”i pieejama kodolam.
    • Seccomp sistēmas zvanu filtrÄ“Å”anas sistēmā, pārvietojot bloÄ·Ä“Å”anas apstrādātājus lietotāja telpā, ir iespējams izmantot vienu atomu operāciju, lai izveidotu faila deskriptoru izolētam uzdevumam un atgrieztu to, apstrādājot sistēmas zvanu. Piedāvātā darbÄ«ba atrisina problēmu, kas saistÄ«ta ar apdarinātāja pārtraukÅ”anu lietotāja telpā, kad tiek saņemts signāls.
    • Pievienots jauns mehānisms resursu ierobežojumu pārvaldÄ«bai lietotāja ID nosaukumvietā, kas saista atseviŔķus rlimit skaitÄ«tājus ar lietotāju "lietotāja nosaukumvietā". Izmaiņas atrisina problēmu, kas saistÄ«ta ar kopējo resursu skaitÄ«tāju izmantoÅ”anu, kad viens lietotājs palaiž procesus dažādos konteineros.
    • KVM hipervizors ARM64 sistēmām ir pievienojis iespēju izmantot MTE (MemTag, Memory Tagging Extension) paplaÅ”inājumu viesu sistēmās, kas ļauj saistÄ«t tagus katrai atmiņas pieŔķirÅ”anas darbÄ«bai un organizēt rādÄ«tāju pareizas izmantoÅ”anas pārbaudi, lai bloķētu ievainojamÄ«bas, ko izraisa piekļuve jau atbrÄ«votajiem atmiņas blokiem, bufera pārpilde, piekļuve pirms inicializācijas un izmantoÅ”ana ārpus paÅ”reizējā konteksta.
    • ARM64 platformas rādÄ«tāja autentifikācijas iespējas tagad var konfigurēt atseviŔķi kodolam un lietotāja vietai. Å Ä« tehnoloÄ£ija ļauj izmantot specializētas ARM64 instrukcijas, lai pārbaudÄ«tu atgrieÅ”anas adreses, izmantojot ciparparakstus, kas tiek saglabāti paÅ”a rādÄ«tāja neizmantotajos augŔējos bitos.
    • Lietotāja režīmā Linux ir pievienots atbalsts draiveru izmantoÅ”anai PCI ierÄ«cēm ar virtuālo PCI kopni, ko ievieÅ” PCI-over-virtio draiveris.
    • X86 sistēmām ir pievienots atbalsts virtio-iommu paravirtualizētajai ierÄ«cei, kas ļauj nosÅ«tÄ«t IOMMU pieprasÄ«jumus, piemēram, ATTACH, DETACH, MAP un UNMAP, izmantojot virtio transportu, ne emulējot atmiņas lapu tabulas.
    • Intel centrālajiem procesoriem, sākot no Skylake saimes un beidzot ar Coffee Lake, Intel TSX (transakciju sinhronizācijas paplaÅ”inājumi), kas nodroÅ”ina rÄ«kus vairāku pavedienu lietojumprogrammu veiktspējas uzlaboÅ”anai, dinamiski novērÅ”ot nevajadzÄ«gas sinhronizācijas darbÄ«bas, lietoÅ”ana pēc noklusējuma ir atspējota. PaplaÅ”inājumi ir atspējoti, jo ir iespējami Zombieload uzbrukumi, kas manipulē ar informācijas noplÅ«di, izmantojot treÅ”o puÅ”u kanālus, kas notiek TAA (TSX Asynchronous Abort) mehānisma darbÄ«bas laikā.
  • TÄ«kla apakÅ”sistēma
    • Integrācija MPTCP (MultiPath TCP) kodolā, TCP protokola paplaÅ”inājums TCP savienojuma darbÄ«bas organizÄ“Å”anai ar pakeÅ”u piegādi vienlaicÄ«gi pa vairākiem marÅ”rutiem caur dažādām tÄ«kla saskarnēm, kas saistÄ«tas ar dažādām IP adresēm. Jaunajā laidienā ir pievienots mehānisms savu trafika jaukÅ”anas politiku iestatÄ«Å”anai IPv4 un IPv6 (daudzceļu jaukÅ”anas politika), kas ļauj no lietotāja vietas noteikt, kuri lauki paketēs, ieskaitot iekapsulētos, tiks izmantoti, aprēķinot jaucējkodu, kas nosaka paketes ceļa izvēle.
    • Virto virtuālajam transportam ir pievienots atbalsts SOCK_SEQPACKET ligzdām (pasÅ«tÄ«ta un uzticama datagrammu pārraide).
    • PaplaÅ”inātas SO_REUSEPORT ligzdas mehānisma iespējas, kas ļauj vienlaikus pieslēgties vairākām klausÄ«Å”anās ligzdām vienam portam, lai saņemtu savienojumus ar ienākoÅ”o pieprasÄ«jumu sadali vienlaicÄ«gi pa visām ligzdām, kas savienotas caur SO_REUSEPORT, kas vienkārÅ”o daudzpavedienu servera lietojumprogrammu izveidi. . Jaunajā versijā ir pievienoti rÄ«ki vadÄ«bas pārsÅ«tÄ«Å”anai uz citu ligzdu, ja, apstrādājot pieprasÄ«jumu sākotnēji atlasÄ«tajā ligzdā, rodas kļūmes (atrisina problēmu ar atseviŔķu savienojumu zudumu, restartējot pakalpojumus).
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • Amdgpu draiveris nodroÅ”ina atbalstu jaunajai AMD Radeon RX 6000 GPU sērijai ar koda nosaukumiem ā€œBeige Gobyā€ (Navi 24) un ā€œYellow Carpā€, kā arÄ« uzlabotu atbalstu Aldebaran GPU (gfx90a) un Van Gogh APU. Pievienota iespēja vienlaikus strādāt ar vairākiem eDP paneļiem. APU Renoir ir ieviests atbalsts darbam ar Å”ifrētiem buferiem video atmiņā (TMZ, Trusted Memory Zone). Pievienots karstās atvienoÅ”anas grafikas karÅ”u atbalsts. Radeon RX 6000 (Navi 2x) GPU un vecākiem AMD GPU pēc noklusējuma ir iespējots ASPM (Active State Power Management) atbalsts, kas iepriekÅ” bija iespējots tikai Navi 1x, Vega un Polaris GPU.
    • AMD mikroshēmām ir pievienots atbalsts koplietojamai virtuālajai atmiņai (SVM, koplietojamā virtuālā atmiņa), pamatojoties uz HMM (Heterogeneous memory management) apakÅ”sistēmu, kas ļauj izmantot ierÄ«ces ar savām atmiņas pārvaldÄ«bas vienÄ«bām (MMU, atmiņas pārvaldÄ«bas vienÄ«ba), kas var piekļūt galvenajai atmiņai. Jo Ä«paÅ”i, izmantojot HMM, varat organizēt kopÄ«gu adreÅ”u telpu starp GPU un CPU, kurā GPU var piekļūt procesa galvenajai atmiņai.
    • Pievienots sākotnējais atbalsts AMD Smart Shift tehnoloÄ£ijai, kas dinamiski maina CPU un GPU jaudas iestatÄ«jumus klēpjdatoros ar AMD mikroshēmojumu un grafisko karti, lai uzlabotu veiktspēju spēlēm, video rediģēŔanai un 3D renderÄ“Å”anai.
    • Intel grafisko karÅ”u i915 draiveris ietver Intel Alderlake P mikroshēmu atbalstu.
    • Pievienots drm/hyperv draiveris Hyper-V virtuālajam grafikas adapterim.
    • Pievienots atbalsts Raspberry Pi 400 viss vienā datorā.
    • Pievienots dell-wmi-privacy draiveris, lai atbalstÄ«tu aparatÅ«ras kameras un mikrofona slēdžus, kas iekļauti Dell klēpjdatoros.
    • Lenovo klēpjdatoriem ir pievienots WMI interfeiss BIOS iestatÄ«jumu mainÄ«Å”anai, izmantojot sysfs /sys/class/firmware-attributes/.
    • PaplaÅ”ināts atbalsts ierÄ«cēm ar USB4 interfeisu.
    • Pievienots atbalsts AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 un Texas Instruments TAS2505 skaņas kartēm un kodekiem. Uzlabots audio atbalsts HP un ASUS klēpjdatoriem. Pievienoti ielāpi, lai samazinātu aizkavi pirms audio atskaņoÅ”anas USB ierÄ«cēs.

Avots: opennet.ru

Pievieno komentāru