Linux 5.14 nga pagpagawas sa kernel

Pagkahuman sa duha ka bulan nga pag-uswag, gipresentar ni Linus Torvalds ang pagpagawas sa Linux kernel 5.14. Lakip sa labing talagsaong mga pagbag-o: bag-ong quotactl_fd() ug memfd_secret() nga mga tawag sa sistema, pagtangtang sa ide ug hilaw nga mga drayber, bag-ong I/O priority controller para sa cgroup, SCHED_CORE task scheduling mode, imprastraktura para sa pagmugna ug verified BPF program loaders.

Ang bag-ong bersyon naglakip sa 15883 nga mga pag-ayo gikan sa 2002 nga mga developer, ang gidak-on sa patch mao ang 69 MB (ang mga pagbag-o nakaapekto sa 12580 nga mga file, 861501 nga linya sa code ang gidugang, 321654 nga linya ang gitangtang). Mga 47% sa tanan nga mga pagbag-o nga gipaila sa 5.14 adunay kalabutan sa mga driver sa aparato, gibana-bana nga 14% sa mga pagbag-o ang may kalabutan sa pag-update sa code nga piho sa mga arkitektura sa hardware, 13% ang may kalabutan sa networking stack, 3% ang may kalabutan sa mga file system, ug 3% adunay kalabutan sa internal nga mga subsystem sa kernel.

Panguna nga mga inobasyon:

  • Disk Subsystem, I/O ug File Systems
    • Usa ka bag-ong I/O prioritization controller ang giimplementar para sa mga cgroup, rq-qos, nga makakontrol sa priority sa pagproseso sa mga hangyo aron babagan ang mga device nga gihimo sa mga miyembro sa matag cgroup. Ang bag-ong priority controller nga suporta gidugang sa mq-deadline I/O scheduler.
    • Ang ext4 file system nagpatuman ug bag-ong ioctl command, EXT4_IOC_CHECKPOINT, nga nagpugos sa tanang pending nga mga transaksyon gikan sa journal ug sa ilang mga kaubang buffer nga i-flush sa disk, ug i-overwrite usab ang lugar nga gigamit sa journal sa storage. Ang pagbag-o giandam isip bahin sa usa ka inisyatiba aron mapugngan ang mga pagtulo sa impormasyon gikan sa mga file system.
    • Ang mga pag-optimize sa pasundayag gihimo sa Btrfs: pinaagi sa pagwagtang sa wala kinahanglana nga pag-log sa mga gipalawig nga mga hiyas sa panahon sa fsync nga pagpatuman, ang paghimo sa mga intensive nga operasyon nga adunay gipalawig nga mga hiyas miuswag hangtod sa 17%. Dugang pa, kung maghimo sa mga operasyon sa pagputol nga dili makaapekto sa mga gilapdon, ang bug-os nga pag-synchronize gi-disable, nga nakunhuran ang oras sa operasyon sa 12%. Usa ka setting ang gidugang sa sysfs aron limitahan ang I/O bandwidth kung susihon ang FS. Gidugang ang mga tawag sa ioctl aron kanselahon ang pagbag-o ug pagtangtang sa mga operasyon sa aparato.
    • Sa XFS, ang pagpatuman sa buffer cache gidesinyo pag-usab, nga gibalhin sa paggahin sa mga pahina sa panumduman sa batch mode. Gipauswag nga kahusayan sa cache.
    • Nagdugang ang F2FS og opsyon sa pag-operate sa read-only mode ug nagpatuman og compressed block cache mode (compress_cache) aron mapalambo ang random read performance. Gipatuman ang suporta alang sa pag-compress sa mga file nga gimapa sa memorya gamit ang mmap() nga operasyon. Aron mapili nga ma-disable ang file compression base sa usa ka maskara, usa ka bag-ong kapilian sa pag-mount nga nocompress ang gisugyot.
    • Gihimo ang trabaho sa drayber sa exFAT aron mapaayo ang pagkaangay sa pipila nga pagtipig sa digital camera.
    • Gidugang ang quotactl_fd() nga tawag sa sistema, nga nagtugot kanimo sa pagdumala sa mga quota dili pinaagi sa usa ka espesyal nga file sa aparato, apan pinaagi sa pagpiho sa usa ka deskriptor sa file nga adunay kalabotan sa sistema sa file diin gipadapat ang quota.
    • Ang daan nga mga drayber alang sa block device nga adunay interface sa IDE gikuha gikan sa kernel; dugay na silang gipulihan sa libata subsystem.
    • Ang "hilaw" nga drayber gikuha gikan sa kernel, nga naghatag og wala'y buffered nga pag-access sa pag-block sa mga himan pinaagi sa / dev / raw interface. Kini nga gamit dugay na nga gipatuman sa mga aplikasyon gamit ang O_DIRECT nga bandera.
  • Mga serbisyo sa memorya ug sistema
    • Ang task scheduler nagpatuman ug bag-ong mode sa pag-iskedyul, SCHED_CORE, nga nagtugot kanimo sa pagkontrolar kung unsang mga proseso ang mahimong ipatuman nga magkauban sa samang CPU core. Ang matag proseso mahimong ma-assign og cookie identifier nga naghubit sa gidak-on sa pagsalig tali sa mga proseso (pananglitan, iya sa samang user o sudlanan). Kung nag-organisar sa pagpatuman sa code, ang scheduler makasiguro nga ang usa ka CPU core gipaambit lamang sa mga proseso nga nalangkit sa parehas nga tag-iya, nga magamit aron babagan ang pipila ka mga pag-atake sa Spectre pinaagi sa pagpugong sa kasaligan ug dili kasaligan nga mga buluhaton gikan sa pagdagan sa parehas nga SMT (Hyper Threading) nga hilo .
    • Alang sa cgroup, gipatuman ang suporta alang sa operasyon sa pagpatay, nga nagtugot kanimo sa pagpatay sa tanan nga mga proseso nga nakig-uban sa grupo sa makausa (ipadala ang SIGKILL) pinaagi sa pagsulat sa "1" sa virtual nga file nga cgroup.kill.
    • Ang gipalapdan nga mga kapabilidad nga may kalabutan sa pagtubag sa pagkakita sa mga split lock ("split lock") nga mahitabo sa diha nga ang pag-access sa wala'y linya nga datos sa panumduman tungod sa kamatuoran nga sa dihang nagpatuman sa atomic nga instruksiyon, ang datos motabok sa duha ka linya sa cache sa CPU. Ang ingon nga pag-block nagdala sa usa ka hinungdanon nga pagkunhod sa pasundayag, mao nga kaniadto posible nga kusog nga tapuson ang aplikasyon nga hinungdan sa pag-block. Ang bag-ong pagpagawas nagdugang usa ka parameter sa linya sa mando sa kernel "split_lock_detect = ratelimit: N", nga nagtugot kanimo nga mahibal-an ang usa ka tibuuk nga sistema nga limitasyon sa rate sa pag-lock sa mga operasyon matag segundo, pagkahuman sa bisan unsang proseso nga nahimong gigikanan sa usa ka split lock. mapugos sa paghunong alang sa 20 ms imbes sa pagtapos.
    • Ang cgroup bandwidth controller nga CFS (CFS bandwidth controller), nga nagtino kung pila ang oras sa processor nga mahimong igahin sa matag cgroup, nagpatuman sa abilidad sa paghubit sa mga limitasyon nga limitado sa oras, nga nagtugot alang sa mas maayo nga regulasyon sa latency-sensitive nga mga workloads. Pananglitan, ang pagbutang sa cpu.cfs_quota_us ngadto sa 50000 ug cpu.cfs_period_us ngadto sa 100000 magtugot sa usa ka grupo sa mga proseso nga mag-usik ug 100ms sa oras sa CPU matag 50ms.
    • Gidugang ang inisyal nga imprastraktura alang sa paghimo sa mga loader sa programa sa BPF, nga labi nga magtugot sa pagkarga sa mga programa lamang sa BPF nga gipirmahan sa usa ka kasaligan nga digital nga yawe.
    • Gidugang ang usa ka bag-ong operasyon sa futex FUTEX_LOCK_PI2, nga naggamit sa usa ka monotonic nga timer aron makalkulo ang usa ka timeout nga gikonsiderar ang oras nga gigugol sa sistema sa mode sa pagkatulog.
    • Alang sa arkitektura sa RISC-V, ang suporta alang sa dagkong mga panid sa panumduman (Transparent Huge-Pages) ug ang abilidad sa paggamit sa mekanismo sa KFENCE aron makit-an ang mga sayup kung nagtrabaho uban ang memorya gipatuman.
    • Ang madvise() system call, nga naghatag usa ka paagi aron ma-optimize ang pagdumala sa memorya sa usa ka proseso, gidugang ang mga bandila sa MADV_POPULATE_READ ug MADV_POPULATE_WRITE aron makamugna usa ka "fault sa panid" sa tanan nga mga panid sa memorya nga gimapa aron mabasa o isulat ang mga operasyon, nga wala maghimo usa ka aktuwal nga pagbasa o pagsulat. (prefault). Ang paggamit sa mga bandera mahimong mapuslanon alang sa pagkunhod sa mga paglangan sa pagpatuman sa programa, tungod sa proactive nga pagpatuman sa "page fault" handler alang sa tanan nga wala mapili nga mga panid sa usa ka higayon, nga wala maghulat sa aktuwal nga pag-access niini.
    • Ang sistema sa pagsulay sa yunit sa yunit nagdugang suporta alang sa pagpadagan sa mga pagsulay sa palibot sa QEMU.
    • Gidugang ang mga bag-ong tracer: "osnoise" aron masubay ang mga paglangan sa aplikasyon tungod sa paghunong sa pagdumala, ug ang "timerlat" aron ipakita ang detalyado nga kasayuran bahin sa mga paglangan kung makamata gikan sa usa ka signal sa timer.
  • Virtualization ug Security
    • Ang memfd_secret() system call gidugang aron makahimo ug pribadong memory area sa usa ka nahilit nga address space, makita lamang sa proseso sa pagpanag-iya, dili makita sa ubang mga proseso, ug dili direkta nga ma-access sa kernel.
    • Sa seccomp system call filtering system, sa dihang ibalhin ang mga blocking handler ngadto sa user space, posible nga gamiton ang usa ka atomic operation sa paghimo og file descriptor alang sa usa ka hilit nga buluhaton ug ibalik kini sa pagproseso sa usa ka system call. Ang gisugyot nga operasyon nagsulbad sa problema sa pag-undang sa usa ka handler sa wanang sa tiggamit kung moabut ang usa ka signal.
    • Gidugang ang usa ka bag-ong mekanismo alang sa pagdumala sa mga limitasyon sa kapanguhaan sa user ID namespace, nga nagbugkos sa indibidwal nga rlimit counter sa usa ka user sa "user namespace". Ang pagbag-o nagsulbad sa problema sa paggamit sa komon nga mga counter sa kapanguhaan kung ang usa ka user nagpadagan sa mga proseso sa lain-laing mga sudlanan.
    • Ang KVM hypervisor alang sa mga sistema sa ARM64 nagdugang sa abilidad sa paggamit sa MTE (MemTag, Memory Tagging Extension) nga extension sa mga guest system, nga nagtugot kanimo sa pagbugkos sa mga tag sa matag operasyon sa alokasyon sa memorya ug pag-organisar sa pagsusi sa husto nga paggamit sa mga pointer aron babagan ang pagpahimulos sa mga kahuyangan tungod sa pag-access sa na-libre na nga mga bloke sa memorya, pag-awas sa buffer, pag-access sa wala pa ang pagsugod ug paggamit sa gawas sa kasamtangan nga konteksto.
    • Ang mga pasilidad sa Pointer Authentication sa ARM64 nga plataporma mahimo nang ma-configure nga gilain alang sa kernel ug user space. Gitugotan ka sa teknolohiya nga mogamit sa espesyal nga mga panudlo sa ARM64 aron mapamatud-an ang mga adres sa pagbalik gamit ang mga digital nga pirma nga gitipigan sa wala magamit nga mga bahin sa taas sa pointer mismo.
    • Ang user-mode nga Linux midugang og suporta sa paggamit sa mga drayber alang sa PCI device nga adunay virtual PCI bus, nga gipatuman sa PCI-over-virtio driver.
    • Para sa x86 nga mga sistema, gidugang nga suporta para sa virtio-iommu paravirtualized device, nga nagtugot sa IOMMU nga mga hangyo sama sa ATTACH, DETACH, MAP ug UNMAP nga ipadala sa virtio transport nga walay pagsundog sa memory page tables.
    • Alang sa mga Intel CPU, gikan sa pamilyang Skylake hangtod sa Coffee Lake, ang paggamit sa Intel TSX (Transactional Synchronization Extensions), nga naghatag mga himan alang sa pagpaayo sa pasundayag sa multi-threaded nga mga aplikasyon pinaagi sa dinamikong pagwagtang sa wala kinahanglana nga mga operasyon sa pag-synchronize, gi-disable pinaagi sa default. Ang mga extension gi-disable tungod sa posibilidad sa mga pag-atake sa Zombieload nga nagmaniobra sa pagtagas sa impormasyon pinaagi sa mga third-party nga channel nga mahitabo sa panahon sa operasyon sa TAA (TSX Asynchronous Abort) nga mekanismo.
  • Subsystem sa network
    • Paghiusa ngadto sa kinauyokan sa MPTCP (MultiPath TCP), usa ka extension sa TCP protocol alang sa pag-organisar sa operasyon sa usa ka koneksyon sa TCP uban sa paghatod sa mga packet dungan sa pipila ka mga ruta pinaagi sa lain-laing mga network interface nga may kalabutan sa lain-laing mga IP address. Ang bag-ong pagpagawas nagdugang usa ka mekanismo alang sa pagtakda sa imong kaugalingon nga mga polisiya sa hashing sa trapiko alang sa IPv4 ug IPv6 (multipath hash policy), nga nagpaposible sa pagtino gikan sa user space kung unsang mga field sa mga packet, lakip ang mga encapsulated, ang gamiton sa pagkalkula sa hash nga nagtino sa pagpili sa dalan alang sa pakete.
    • Ang suporta alang sa SOCK_SEQPACKET sockets (gi-order ug kasaligan nga transmission sa datagrams) gidugang sa virtio virtual nga transportasyon.
    • Ang mga kapabilidad sa SO_REUSEPORT nga mekanismo sa socket gipalapdan, nga nagtugot sa daghang mga socket sa pagpaminaw nga magkonektar sa usa ka port sa makausa aron makadawat og mga koneksyon sa pag-apod-apod sa umaabot nga mga hangyo nga dungan sa tanan nga mga socket nga konektado pinaagi sa SO_REUSEPORT, nga nagpasayon ​​sa paghimo sa multi-threaded server applications. . Ang bag-ong bersyon nagdugang mga himan alang sa pagbalhin sa kontrol sa lain nga socket kung adunay kapakyasan sa pagproseso sa usa ka hangyo sa una nga gipili nga socket (gisulbad ang problema sa pagkawala sa indibidwal nga mga koneksyon kung gi-restart ang mga serbisyo).
  • Kagamitan
    • Ang drayber sa amdgpu naghatag suporta alang sa bag-ong AMD Radeon RX 6000 nga serye sa mga GPU, nga gi-codenamed nga "Beige Goby" (Navi 24) ug "Yellow Carp", ingon man ang gipaayo nga suporta alang sa Aldebaran GPU (gfx90a) ug Van Gogh APU. Gidugang ang abilidad sa dungan nga pagtrabaho sa daghang mga panel sa eDP. Alang sa APU Renoir, gipatuman ang suporta sa pagtrabaho sa mga naka-encrypt nga buffer sa memorya sa video (TMZ, Trusted Memory Zone). Gidugang nga suporta alang sa mga hot-unplug graphics card. Para sa Radeon RX 6000 (Navi 2x) GPUs ug mas karaan nga AMD GPUs, ang suporta sa ASPM (Active State Power Management) gi-enable sa default, nga kaniadto gi-enable para lang sa Navi 1x, Vega ug Polaris GPUs.
    • Alang sa AMD chips, ang suporta alang sa shared virtual memory (SVM, shared virtual memory) gidugang base sa HMM (Heterogenous memory management) subsystem, nga nagtugot sa paggamit sa mga device nga adunay ilang kaugalingong memory management units (MMU, memory management unit), nga maka-access sa main memory. Sa partikular, gamit ang HMM, mahimo nimong organisahon ang gipaambit nga address space tali sa GPU ug CPU, diin ang GPU maka-access sa main memory sa proseso.
    • Gidugang ang inisyal nga suporta alang sa teknolohiya sa AMD Smart Shift, nga dinamikong nagbag-o sa mga setting sa gahum sa CPU ug GPU sa mga laptop nga adunay AMD chipset ug graphics card aron mapausbaw ang pasundayag alang sa pagdula, pag-edit sa video, ug pag-render sa 3D.
    • Ang i915 driver alang sa Intel graphics cards naglakip sa suporta alang sa Intel Alderlake P chips.
    • Gidugang ang drm/hyperv driver alang sa Hyper-V virtual graphics adapter.
    • Gidugang nga suporta alang sa Raspberry Pi 400 all-in-one nga kompyuter.
    • Gidugang ang dell-wmi-privacy driver aron suportahan ang hardware camera ug mga switch sa mikropono nga gilakip sa Dell laptops.
    • Para sa Lenovo laptops, usa ka WMI interface ang gidugang para sa pag-usab sa BIOS settings pinaagi sa sysfs /sys/class/firmware-attributes/.
    • Gipadako nga suporta alang sa mga aparato nga adunay interface sa USB4.
    • Gidugang nga suporta alang sa AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ug Texas Instruments TAS2505 sound card ug codec. Gipauswag nga suporta sa audio sa HP ug ASUS nga mga laptop. Gidugang nga mga patch aron makunhuran ang mga paglangan sa wala pa magsugod ang audio sa pagdula sa mga USB device.

Source: opennet.ru

Idugang sa usa ka comment