Linux Kernel 5.14

Linux Kernel 5.14

Apre de mwa nan devlopman, Linus Torvalds entwodwi lage nwayo Linux 5.14. Pami chanjman ki pi remakab yo: nouvo quotactl_fd() ak memfd_secret() apèl sistèm, retire ide ak chofè kri, nouvo kontwolè priyorite I/O pou cgroup, mòd orè travay SCHED_CORE, enfrastrikti pou kreye chajè pwogram BPF verifye.

Nouvo vèsyon an gen ladan 15883 ranje soti nan 2002 devlopè, gwosè patch la se 69 MB (chanjman ki afekte 12580 dosye, 861501 liy kòd yo te ajoute, 321654 liy yo te efase). Apeprè 47% nan tout chanjman ki prezante nan 5.14 yo gen rapò ak chofè aparèy, apeprè 14% nan chanjman yo gen rapò ak ajou kòd espesifik achitekti pyès ki nan konpitè, 13% yo gen rapò ak pil rezo a, 3% yo gen rapò ak sistèm dosye, ak 3% yo gen rapò ak subsistèm nwayo entèn yo.

Prensipal la inovasyon:

  • Diskèt sous-sistèm, antre/sòti ak sistèm dosye:
    • pou cgroup aplike Nouvo kontwolè priyorite I/O - rq-qos, ki ka kontwole priyorite pwosesis demann pou bloke aparèy ki te pwodwi pa manm chak cgroup. Nouvo sipò kontwolè priyorite yo te ajoute nan pwogramè I/O mq-deadline la;
    • sou sistèm fichye ext4 aplike Nouvo lòd ioctl EXT4_IOC_CHECKPOINT, ki fòse tout tranzaksyon annatant soti nan boutèy demi lit la ak tanpon ki asosye sou disk, epi tou ranplase zòn nan itilize pa boutèy la nan depo. Chanjman an te prepare kòm yon pati nan yon inisyativ pou anpeche fwit enfòmasyon ki soti nan sistèm dosye yo;
    • nan Btrfs prezante Optimize pèfòmans: Lè nou elimine anrejistreman ki pa nesesè nan atribi pwolonje pandan ekzekisyon fsync, pèfòmans operasyon entansif ak atribi pwolonje ogmante jiska 17%. Anplis de sa, lè w ap fè operasyon taye ki pa afekte limit, senkronizasyon konplè enfim, sa ki redwi tan operasyon an pa 12%. Yo te ajoute yon paramèt nan sysfs pou limite I/O Pleasant lè w tcheke FS la. Te ajoute apèl ioctl pou anile redimansyonman ak efase operasyon aparèy;
    • nan XFS retravay aplikasyon yon kachèt tanpon, ki transfere nan alokasyon an nan paj memwa nan mòd pakèt. Amelyore efikasite kachèt;
    • F2FS te ajoute yon opsyon pou travay nan mòd lekti sèlman epi aplike yon mòd konprese blòk kachèt (compress_cache) pou amelyore pèfòmans lekti o aza. Yo te aplike sipò pou konpresyon fichye trase nan memwa lè l sèvi avèk operasyon mmap(). Pou oaza enfim konpresyon fichye pa mask, yo te pwopoze yon nouvo opsyon mòn nocompress;
    • travay ki fèt nan chofè exFAT pou amelyore konpatibilite ak depo kèk kamera dijital;
    • te ajoute apèl sistèm quotactl_fd(), ki pèmèt ou jere kota pa atravè yon fichye aparèy espesyal, men lè w espesifye yon deskriptè fichye ki asosye ak sistèm fichye kote yo aplike kota a;
    • Ansyen chofè pou aparèy blòk ak koòdone IDE yo te retire nan nwayo a; depi lontan yo te ranplase pa subsistèm libata a. Sipò pou ansyen aparèy yo te kenbe nan plen, chanjman yo konsène sèlman kapasite nan sèvi ak ansyen chofè, lè w ap itilize ki kondui yo te rele /dev/hd*, epi yo pa /dev/sd*;
    • Yo retire chofè "kri" a nan nwayo a, sa ki bay aksè san tampon pou bloke aparèy atravè koòdone /dev/raw. Fonksyonalite sa a te aplike depi lontan nan aplikasyon ki itilize drapo O_DIRECT la;
  • memwa ak sèvis sistèm:
    • yon nouvo mòd orè yo te aplike nan planifikatè travay la SCHED_CORE, ki pèmèt ou kontwole ki pwosesis ka kouri ansanm sou menm nwayo CPU a. Yo ka bay chak pwosesis yon idantifyan bonbon ki defini dimansyon konfyans ant pwosesis (pa egzanp, ki fè pati menm itilizatè oswa veso). Lè w òganize ekzekisyon kòd, pwogramè a ka asire ke yon sèl CPU nwayo pataje sèlman pami pwosesis ki asosye ak menm pwopriyetè a, ki ka itilize pou bloke kèk atak Spectre lè yo anpeche travay ki fè konfyans ak ki pa fè konfyans yo kouri sou menm fil SMT (Hyper Threading). ;
    • pou mekanis nan cgroup, sipò pou operasyon an touye yo te aplike, ki pèmèt ou touye tout pwosesis ki asosye ak gwoup la nan yon fwa (voye SIGKILL) lè w ekri "1" nan dosye vityèl cgroup.kill la;
    • kapasite elaji ki gen rapò ak reponn a deteksyon kadna fann ("kadna fann") ki rive lè w gen aksè a done ki pa aliye nan memwa akòz lefèt ke lè egzekite yon enstriksyon atomik, done yo kwaze de liy kachèt CPU. Bloke sa a mennen nan yon gout siyifikatif nan pèfòmans, kidonk deja li te posib pou mete fen nan aplikasyon an ki te lakòz bloke a. Nouvo lage a ajoute paramèt liy kòmand nwayo a "split_lock_detect=ratelimit:N", ki pèmèt ou defini yon limit nan tout sistèm nan sou pousantaj la nan operasyon bloke pou chak segonn, apre yo fin depase ki nenpòt pwosesis ki te vin sous la nan yon seri fèmen. dwe fòse yo sispann pou 20 ms olye pou yo sispann;
    • Contrôleur la bande cgroup CFS (CFS bandwidth kontwolè), ki detèmine konbyen tan processeur ka afekte nan chak cgroup, gen kapasite pou defini limit limite pa yon dire aksyon bay, ki pèmèt pi bon règleman nan chaj latansi-sansib. Pa egzanp, mete cpu.cfs_quota_us a 50000 ak cpu.cfs_period_us a 100000 pral pèmèt yon gwoup pwosesis gaspiye 100ms tan CPU chak 50ms;
    • te ajoute inisyal enfrastrikti pou kreye BPF charger pwogram, ki pral pèmèt plis telechaje pwogram BPF sèlman ki siyen ak yon kle dijital ki fè konfyans;
    • te ajoute yon nouvo operasyon futex FUTEX_LOCK_PI2, ki itilize yon revèy monotonik pou kalkile delè a, ki pran an kont tan sistèm lan pase nan mòd dòmi;
    • pou achitekti RISC-V, sipò pou gwo paj memwa (Transparent Huge-Pages) ak kapasite pou itilize KFENCE idantifye erè lè w ap travay ak memwa;
    • nan apèl sistèm madvise(), ki bay yon mwayen pou optimize jesyon memwa pwosesis, te ajoute Drapo MADV_POPULATE_READ ak MADV_POPULATE_WRITE pou jenere yon "paj fay" sou tout paj memwa ki make pou operasyon lekti oswa ekri, san yo pa fè yon lekti oswa ekri aktyèl (prefault). Itilizasyon drapo yo ka itil pou diminye reta nan ekzekisyon pwogram nan, gras a egzekisyon pwoaktif jeran "paj fay" pou tout paj ki pa alokasyon an menm tan, san yo pa tann aksè aktyèl la nan yo;
    • nan yon sistèm tès inite kunit te ajoute sipò pou fè tès nan anviwònman QEMU;
    • nouvo trasers te ajoute: "osnoise" pou swiv reta aplikasyon ki te koze pa manyen entèwonp, ak " timerlat " pou montre enfòmasyon detaye sou reta lè reveye nan yon siyal revèy;
  • Virtualization ak sekirite:
    • te ajoute apèl sistèm memfd_secret(), ki pèmèt ou kreye yon zòn memwa prive nan yon espas adrès izole, vizib sèlman nan pwosesis pwopriyetè a, pa reflete nan lòt pwosesis epi yo pa dirèkteman aksesib a nwayo a;
    • nan sistèm filtraj apèl sistèm seccomp, lè w ap deplase moun kap okipe yo nan espas itilizatè a, li posib pou itilize yon operasyon atomik pou kreye yon deskriptè fichye pou yon travay izole epi retounen li lè w ap trete yon apèl sistèm. Operasyon pwopoze a rezoud pwoblèm ak entèripsyon nan moun kap okipe a nan espas itilizatè lè yon siyal rive;
    • te ajoute nouvo mekanis pou jere limite resous nan espas non itilizatè ID, ki mare kontè rlimit endividyèl ak yon itilizatè nan "espas non itilizatè". Chanjman an rezoud pwoblèm nan ak itilizasyon kontè resous komen lè yon itilizatè kouri pwosesis nan diferan resipyan;
    • Hypervisor KVM pou sistèm ARM64 te ajoute kapasite pou sèvi ak ekstansyon MTE (MemTag, Memory Tagging Extension) nan sistèm envite, ki pèmèt ou mare tags nan chak operasyon alokasyon memwa epi òganize tcheke itilizasyon kòrèk endikasyon pou bloke eksplwatasyon an. vilnerabilite ki te koze pa aksè nan blòk memwa ki deja libere, debòde tanpon, aksè anvan inisyalizasyon ak itilizasyon andeyò kontèks aktyèl la;
    • Otantifikasyon Pointer ki ofri pa platfòm ARM64 la kapab kounye a configuré separeman pou nwayo ak espas itilizatè. Teknoloji a pèmèt ou sèvi ak enstriksyon espesyalize ARM64 pou verifye adrès retounen yo lè l sèvi avèk siyati dijital ki estoke nan ti moso anwo yo ki pa itilize nan konsèy la li menm;
    • nan Itilizatè-mòd Linux te ajoute sipò pou itilize nan chofè pou aparèy PCI ak yon otobis PCI vityèl, aplike pa chofè a PCI-over-virtio;
    • pou sistèm x86, te ajoute sipò pou aparèy virtio-iommu paravirtualized, ki pèmèt ou voye demann IOMMU, tankou ATACH, DETACH, MAP ak UNMAP, sou transpò virtio san yo pa imite tab paj memwa;
    • Pou CPU Intel, ki soti nan fanmi Skylake rive nan Coffee Lake, itilizasyon Intel TSX (Tranzaksyon Synchronization Extensions), ki bay zouti pou amelyore pèfòmans aplikasyon milti-threaded lè yo elimine dinamikman operasyon senkronizasyon ki pa nesesè yo, se enfim. Ekstansyon yo enfim akòz posiblite pou atak yo Zombieload, manipile flit enfòmasyon atravè chanèl twazyèm pati ki fèt pandan operasyon mekanis pou entèripsyon asynchrone operasyon yo (TAA, TSX Asynchrone Abort);
  • sous-sistèm rezo:
    • kontinye entegrasyon nan nwayo a nan MPTCP (MultiPath TCP), yon ekstansyon nan pwotokòl TCP a pou òganize operasyon an nan yon koneksyon TCP ak livrezon an nan pake ansanm ansanm sou plizyè wout atravè diferan koòdone rezo ki asosye ak adrès IP diferan. Nan nouvo pwoblèm nan te ajoute yon mekanis pou mete pwòp règleman trafik ou yo pou IPv4 ak IPv6 (politik hachaj multipath), ki fè li posib soti nan espas itilizatè a detèmine ki jaden nan pake, ki gen ladan yo ki ankapsule, yo pral itilize lè w ap kalkile hash la ki detèmine chwa a nan chemen an. pou pake a;
    • sipò priz yo te ajoute nan virtio transpò vityèl la SOCK_SEQPACKET (transmisyon nan lòd ak serye nan datagram);
    • Kapasite mekanis sòkèt SO_REUSEPORT yo te elaji, sa ki pèmèt plizyè sipò pou koute yo konekte nan yon sèl pò alafwa pou resevwa koneksyon ak distribisyon demann k ap fèk ap rantre yo ansanm atravè tout sipò ki konekte atravè SO_REUSEPORT, ki senplifye kreyasyon aplikasyon sèvè milti-threaded. . Nan nouvo vèsyon an te ajoute vle di pou transfere kontwòl nan yon lòt priz nan ka ta gen echèk lè w ap trete yon demann pa priz la okòmansman chwazi (rezoud pwoblèm nan ak pèt la nan koneksyon endividyèl lè rekòmanse sèvis);
  • ekipman:
    • nan chofè a amdgpu aplike sipò pou nouvo seri GPU AMD Radeon RX 6000, ki gen non kod "Beige Goby" (Navi 24) ak "Yellow Carp", osi byen ke sipò amelyore pou Aldebaran GPU (gfx90a) ak Van Gogh APU. Te ajoute kapasite nan travay ansanm ak plizyè panno eDP. Pou APU Renoir, sipò pou travay ak tanpon chiffres nan memwa videyo (TMZ, Trusted Memory Zone) te aplike. Te ajoute sipò pou kat grafik cho-deploge. Pou GPU Radeon RX 6000 (Navi 2x) ak ansyen GPU AMD, sipò pou mekanis ekonomize pouvwa ASPM (Active State Power Management) pèmèt pa default, ki te deja pèmèt sèlman pou Navi 1x, Vega ak Polaris GPU;
    • pou chips AMD, yo te ajoute sipò pou memwa vityèl pataje (SVM, memwa vityèl pataje) ki baze sou HMM (Heterogeneous memory management) subsystem, ki pèmèt itilize nan aparèy ki gen pwòp inite jesyon memwa yo (MMU, inite jesyon memwa), ki ka jwenn aksè nan memwa prensipal la. Ki gen ladan lè l sèvi avèk HMM, ou ka òganize yon espas adrès pataje ant GPU a ak CPU, nan ki GPU a ka jwenn aksè nan memwa prensipal la nan pwosesis la;
    • te ajoute sipò inisyal teknoloji AMD Smart Shift, ki chanje dinamik paramèt konsomasyon pouvwa CPU a ak GPU sou laptops ki gen yon chipset ak yon kat grafik AMD pou ranfòse pèfòmans lè jwèt, koreksyon videyo ak rann 3D;
    • nan chofè i915 pou kat videyo Intel enkli ladan li sipò pou chip Intel Alderlake P;
    • ajoute chofè drm/hyperv pou adaptè grafik vityèl Hyper-V;
    • te ajoute Simpledrm chofè grafik ki sèvi ak EFI-GOP oswa VESA framebuffer ki bay UEFI firmwèr oswa BIOS pou pwodiksyon an. Objektif prensipal chofè a se bay kapasite pwodiksyon grafik pandan premye etap yo nan bòt, anvan yo ka itilize yon chofè DRM konplè. Chofè a kapab itilize tou kòm yon solisyon tanporè pou ekipman ki poko gen chofè DRM natif natal;
    • te ajoute tout-an-yon sipò òdinatè Franbwaz Pi 400;
    • Te ajoute chofè dell-wmi-privacy pou sipòte switch pyès ki nan konpitè kamera ak mikwofòn ki enkli nan òdinatè pòtab Dell yo;
    • pou Lenovo laptops te ajoute WMI koòdone pou chanje paramèt BIOS atravè sysfs /sys/class/firmware-attributes/;
    • elaji sipò pou aparèy ki gen koòdone USB4;
    • te ajoute sipò pou kat son ak kodèk AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ak Texas Instruments TAS2505. Sipò odyo amelyore sou laptop HP ak ASUS. Te ajoute plak pou diminye reta anvan odyo kòmanse jwe sou aparèy ki gen yon koòdone USB.

Sous - opennet.ru.

Sous: linux.org.ru