Linux Kernel lage 5.14

Apre de mwa nan devlopman, Linus Torvalds prezante liberasyon kernel 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 inovasyon:

  • Disk Subsystem, I/O ak File Systems
    • Yon nouvo kontwolè priyorite I/O te aplike pou cgroups, 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.
    • Sistèm fichye ext4 la aplike yon nouvo lòd ioctl, EXT4_IOC_CHECKPOINT, ki fòse tout tranzaksyon ki annatant ki soti nan jounal la ak tanpon ki asosye yo pou yo vide sou disk, epi tou ranplase zòn ki itilize pa jounal 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.
    • Optimize pèfòmans yo te fè nan Btrfs: lè yo elimine anrejistreman nesesè nan atribi pwolonje pandan ekzekisyon fsync, pèfòmans nan operasyon entansif ak atribi pwolonje te 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 yo.
    • Nan XFS, aplikasyon an nan kachèt tanpon an te reamenaje, ki te chanje nan allocation paj memwa nan mòd pakèt. Amelyore efikasite kachèt.
    • F2FS ajoute yon opsyon pou opere nan mòd lekti sèlman epi aplike yon mòd kachèt blòk konprese (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 dosye ki baze sou yon mask, yo te pwopoze yon nouvo opsyon mòn nocompress.
    • Travay yo te fèt nan chofè exFAT pou amelyore konpatibilite ak kèk depo 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è yo pou aparèy blòk ak koòdone IDE yo te retire nan nwayo a; depi lontan yo te ranplase pa subsystem libata.
    • Yo retire chofè "kri" la 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.
  • Sèvis memwa ak sistèm
    • Planifikatè travay la aplike yon nouvo mòd orè, SCHED_CORE, ki pèmèt ou kontwole ki pwosesis yo ka egzekite 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 ou fè konfyans ak travay ki pa fè konfyans yo kouri sou menm fil SMT (Hyper Threading). .
    • Pou 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 yon paramèt liy kòmand nwayo "split_lock_detect=ratelimit:N", ki pèmèt ou defini yon limit nan tout sistèm nan sou pousantaj operasyon bloke pou chak segonn, apre yo fin depase nenpòt pwosesis ki vin sous la nan yon seri fèmen. yo pral fòse yo sispann pou 20 ms olye pou yo sispann.
    • Cgroup bandwidth kontwolè CFS (CFS bandwidth kontwolè), ki detèmine konbyen tan processeur yo ka asiyen nan chak cgroup, aplike kapasite nan defini limit tan limite, ki pèmèt pou pi bon règleman sou chaj travay latansi yo. Pou egzanp, mete cpu.cfs_quota_us a 50000 ak cpu.cfs_period_us a 100000 pral pèmèt yon gwoup pwosesis gaspiye 100ms nan tan CPU chak 50ms.
    • Te ajoute enfrastrikti inisyal pou kreye chajè pwogram BPF, ki pral pèmèt plis chaje pwogram BPF sèlman ki siyen ak yon kle dijital ou fè konfyans.
    • Te ajoute yon nouvo operasyon futex FUTEX_LOCK_PI2, ki itilize yon revèy monotonik pou kalkile yon delè ki pran an kont tan sistèm lan pase nan mòd dòmi.
    • Pou achitekti RISC-V, sipò pou paj memwa gwo (Transparent Huge-Pages) ak kapasite pou itilize mekanis KFENCE pou detekte erè lè w ap travay ak memwa yo aplike.
    • Apèl sistèm madvise(), ki bay yon mwayen pou optimize jesyon memwa pwosesis la, te ajoute drapo MADV_POPULATE_READ ak MADV_POPULATE_WRITE pou jenere yon "fot paj" sou tout paj memwa ki trase pou li oswa ekri operasyon san yo pa fè yon lekti oswa ekri aktyèl (prefault). ). Itilizasyon drapo yo ka itil pou diminye reta nan ekzekisyon pwogram nan, akòz egzekisyon pwoaktif jeran "paj fay" pou tout paj ki pa alokasyon an menm tan, san yo pa tann aksè aktyèl la nan yo.
    • Sistèm tès inite kunit la te ajoute sipò pou fè tès nan anviwònman QEMU.
    • Nouvo trasè yo 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
    • Yo te ajoute apèl sistèm memfd_secret() pou kreye yon zòn memwa prive nan yon espas adrès izole, vizib sèlman nan pwosesis posede a, pa reflete nan lòt pwosesis, epi li pa dirèkteman aksesib a nwayo a.
    • Nan sistèm filtè apèl sistèm seccomp, lè w ap deplase moun kap okipe bloke yo nan espas itilizatè a, li posib pou itilize yon sèl operasyon atomik pou kreye yon deskriptè fichye pou yon travay izole epi retounen li lè w ap trete yon apèl sistèm. Operasyon yo pwopoze a rezoud pwoblèm nan entèwonp yon moun kap okipe nan espas itilizatè lè yon siyal rive.
    • Te ajoute yon nouvo mekanis pou jere limit resous nan espas non ID itilizatè a, 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è a deja libere blòk memwa, debòde tanpon, aksè anvan inisyalizasyon ak itilizasyon deyò kontèks aktyèl la.
    • Enstalasyon Otantifikasyon Pointer platfòm ARM64 la kapab kounye a konfigirasyon separeman pou nwayo ak espas itilizatè. Teknoloji a pèmèt ou sèvi ak enstriksyon espesyalize ARM64 pou verifye adrès retou yo lè l sèvi avèk siyati dijital ki estoke nan pati siperyè ki pa itilize nan konsèy la li menm.
    • Itilizatè-mòd Linux te ajoute sipò pou itilize chofè pou aparèy PCI ak yon otobis PCI vityèl, ki aplike pa chofè a PCI-over-virtio.
    • Pou sistèm x86, te ajoute sipò pou aparèy paravirtualize virtio-iommu, ki pèmèt demann IOMMU tankou ATACH, DETACH, MAP ak UNMAP yo voye 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 Zombieload ki manipile flit enfòmasyon atravè chanèl twazyèm pati ki fèt pandan operasyon mekanis TAA (TSX Asynchronous Abort).
  • Sou-sistèm rezo
    • Entegrasyon nan nwayo a nan MPTCP (MultiPath TCP), yon ekstansyon nan pwotokòl la TCP pou òganize operasyon an nan yon koneksyon TCP ak livrezon an nan pake ansanm sou plizyè wout atravè diferan koòdone rezo ki asosye ak adrès IP diferan. Nouvo lage a ajoute yon mekanis pou mete pwòp règleman trafik ou yo pou IPv4 ak IPv6 (politik hachaj miltipath), sa ki fè li posib pou detèmine nan espas itilizatè ki jaden ki nan pake, ki gen ladan yo ki ankapsule, yo pral itilize lè w ap kalkile hachaj la ki detèmine chwa nan chemen pou pake a.
    • Sipò pou sockets SOCK_SEQPACKET (transmisyon ki bay lòd ak serye nan datagram) te ajoute nan transpò vityo a.
    • 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. . Nouvo vèsyon an ajoute zouti 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
    • Chofè amdgpu a bay 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 Radeon RX 6000 (Navi 2x) GPU ak ansyen GPU AMD, sipò 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 (Jesyon memwa etewojèn), ki pèmèt itilizasyon aparèy ki gen pwòp inite jesyon memwa yo (MMU, inite jesyon memwa), ki ka jwenn aksè nan memwa prensipal la. An patikilye, 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 pou teknoloji AMD Smart Shift, ki chanje dinamikman paramèt CPU ak GPU sou laptops ki gen yon chipset AMD ak kat grafik pou ranfòse pèfòmans pou jwèt, koreksyon videyo, ak rann 3D.
    • Chofè i915 pou kat grafik Intel gen ladann sipò pou chip Intel Alderlake P.
    • Te ajoute chofè drm/hyperv pou adaptè grafik vityèl Hyper-V.
    • Te ajoute sipò pou Raspberry Pi 400 tout-an-yon òdinatè a.
    • Te ajoute chofè dell-wmi-privacy pou sipòte kamera pyès ki nan konpitè ak switch mikwofòn ki enkli nan laptops Dell yo.
    • Pou laptop Lenovo, yo te ajoute yon koòdone WMI pou chanje anviwònman BIOS atravè sysfs /sys/class/firmware-attributes/.
    • Elaji sipò pou aparèy ki gen koòdone USB4.
    • Te ajoute sipò pou AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ak Texas Instruments TAS2505 kat son ak kodèk. Sipò odyo amelyore sou laptop HP ak ASUS. Te ajoute plak pou diminye reta anvan odyo kòmanse jwe sou aparèy USB.

Sous: opennet.ru

Add nouvo kòmantè