Linux kernel 5.14

Linux kernel 5.14

Pagkahuman sa duha ka bulan nga pag-uswag, si Linus Torvalds gipaila pagpagawas sa kernel Linux 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.

nag-unang mga inobasyon:

  • disk subsystem, input/output ug file system:
    • para sa cgroup gipatuman bag-ong I/O priority controller - rq-qos, nga makakontrol sa pagproseso sa prayoridad 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;
    • sa ext4 file system gipatuman bag-ong ioctl command EXT4_IOC_CHECKPOINT, nga nagpugos sa tanang pending nga mga transaksyon gikan sa log ug mga kaubang buffers ngadto sa disk, ug gi-overwrite usab ang lugar nga gigamit sa log in storage. Ang pagbag-o giandam isip bahin sa usa ka inisyatiba aron mapugngan ang mga pagtulo sa impormasyon gikan sa mga sistema sa file;
    • sa Btrfs gipaila-ila Pag-optimize sa pasundayag: Pinaagi sa pagwagtang sa wala kinahanglana nga pag-log sa mga gipalawig nga mga kinaiya sa panahon sa pagpatuman sa fsync, ang paghimo sa mga intensive nga operasyon nga adunay mga gipalugway nga mga kinaiya misaka 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 nga mga tawag sa ioctl aron kanselahon ang pagbag-o sa gidak-on ug pagtangtang sa mga operasyon sa aparato;
    • sa XFS gitrabaho pag-usab pagpatuman sa usa ka buffer cache, nga gibalhin sa alokasyon sa mga panid sa panumduman sa batch mode. Gipauswag nga kahusayan sa cache;
    • Nagdugang ang F2FS og opsyon sa pagtrabaho sa read-only mode ug gipatuman ang compressed block caching 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 pinaagi sa maskara, usa ka bag-ong kapilian sa pag-mount nga nocompress ang gisugyot;
    • nahimo ang trabaho sa drayber sa exFAT aron mapaayo ang pagkaangay sa pagtipig sa pipila ka mga digital camera;
    • dugang nga tawag sa sistema quotactl_fd(), nga nagtugot kanimo sa pagdumala sa mga quota dili pinaagi sa usa ka espesyal nga file sa device, apan pinaagi sa pagtino sa usa ka file descriptor nga may kalabutan sa file system diin ang quota gipadapat;
    • Ang mga daan nga drayber alang sa mga block device nga adunay interface sa IDE gikuha gikan sa kernel; dugay na silang gipulihan sa libata subsystem. Ang suporta alang sa daan nga mga himan gipabilin sa hingpit, ang mga pagbag-o nalangkit lamang sa abilidad sa paggamit sa daan nga mga drayber, sa diha nga ang paggamit diin ang mga drive gitawag nga /dev/hd*, ug dili /dev/sd*;
    • Ang "hilaw" nga drayber gikuha gikan sa kernel, nga naghatag og wala'y pag-access sa pag-block sa mga himan pinaagi sa / dev / raw interface. Kini nga gamit dugay nang gipatuman sa mga aplikasyon gamit ang O_DIRECT nga bandera;
  • serbisyo sa memorya ug sistema:
    • usa ka bag-ong mode sa pag-iskedyul ang gipatuman sa task scheduler SCHED_CORE, nga nagtugot kanimo nga makontrol kung unsang mga proseso ang mahimong magdungan sa parehas nga core sa CPU. 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 mekanismo sa cgroup, gipatuman ang suporta alang sa operasyon sa pagpatay, nga nagtugot kanimo sa pagpatay sa tanan nga mga proseso nga may kalabutan sa grupo sa makausa (ipadala ang SIGKILL) pinaagi sa pagsulat sa "1" sa virtual file nga cgroup.kill;
    • 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 dili aligned nga datos sa memorya tungod sa kamatuoran nga sa diha nga 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 sa kernel command line parameter "split_lock_detect = ratelimit: N", nga nagtugot kanimo sa paghubit sa usa ka sistema sa tibuok nga limitasyon sa rate sa pag-lock sa mga operasyon kada segundo, human molapas sa bisan unsang proseso nga nahimong tinubdan sa split lock. mapugos sa paghunong sa 20 ms imbes nga tapuson;
    • Ang cgroup bandwidth controller nga CFS (CFS bandwidth controller), nga nagtino kon pila ka oras sa processor ang mahimong igahin sa matag cgroup, adunay katakus sa paghubit sa mga limitasyon nga limitado sa gihatag nga gidugayon sa aksyon, nga nagtugot sa mas maayo nga regulasyon sa latency-sensitive loads. 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 sa 100ms sa oras sa CPU matag 50ms;
    • gidugang inisyal nga imprastraktura para sa paghimo sa BPF program loaders, nga motugot pa sa pag-download sa BPF programs lamang nga gipirmahan gamit ang kasaligang digital key;
    • gidugang ang usa ka bag-ong operasyon sa futex FUTEX_LOCK_PI2, nga naggamit sa usa ka monotonic timer aron makalkulo ang timeout, nga gikonsiderar ang oras nga gigugol sa sistema sa mode sa pagkatulog;
    • alang sa arkitektura sa RISC-V, suporta alang sa dagkong mga panid sa panumduman (Transparent Huge-Pages) ug ang abilidad sa paggamit sa KFENCE sa pag-ila sa mga sayop sa diha nga nagtrabaho uban sa panumduman;
    • ngadto sa madvise() nga tawag sa sistema, nga naghatag usa ka paagi aron ma-optimize ang pagdumala sa panumduman sa proseso, gidugang Ang mga bandera sa MADV_POPULATE_READ ug MADV_POPULATE_WRITE aron makamugna og "fault sa panid" sa tanang mga pahina sa memorya nga gimapa para sa mga operasyon sa pagbasa o pagsulat, nga walay pagbuhat ug aktuwal nga pagbasa o pagsulat (prefault). Ang paggamit sa mga bandera mahimong mapuslanon alang sa pagkunhod sa mga paglangay sa pagpatuman sa programa, salamat 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;
    • sa usa ka sistema sa pagsulay sa yunit kunit gidugang suporta alang sa pagpadagan sa mga pagsulay sa palibot sa QEMU;
    • bag-ong mga tracer gidugang: "kasaba" sa pagsubay sa mga paglangan sa aplikasyon tungod sa interrupt nga pagdumala, ug " timerlat " aron ipakita ang detalyadong impormasyon bahin sa mga paglangan sa dihang momata gikan sa usa ka timer signal;
  • virtualization ug seguridad:
    • gidugang tawag sa sistema memfd_secret(), nga nagtugot kanimo sa paghimo og usa ka pribado nga lugar sa panumduman sa usa ka nahilit nga luna sa address, nga makita lamang sa proseso sa tag-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 lock 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. Nasulbad ang gisugyot nga operasyon ang problema nga adunay pagkabalda sa handler sa user space kung adunay signal nga moabut;
    • gidugang bag-ong mekanismo sa pagdumala sa resource limiting sa user ID namespace, nga nagbugkos sa tagsa-tagsa nga rlimit counters ngadto sa usa ka user sa "user namespace". Ang pagbag-o makasulbad sa problema sa paggamit sa komon nga resource counters 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 mga buffer, pag-access sa wala pa ang pagsugod ug paggamit sa gawas sa kasamtangan nga konteksto;
    • Ang Pointer Authentication nga gihatag sa ARM64 nga plataporma mahimo nang ma-configure nga gilain alang sa kernel ug user space. Gitugotan ka sa teknolohiya nga magamit ang 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 ibabaw sa pointer mismo;
    • sa User-mode Linux gidugang suporta alang sa paggamit sa mga drayber alang sa mga kagamitan sa PCI nga adunay virtual PCI bus, nga gipatuman sa drayber sa PCI-over-virtio;
    • alang sa mga sistema sa x86, dugang nga suporta alang sa virtio-iommu paravirtualized device, nga nagtugot kanimo sa pagpadala sa mga hangyo sa IOMMU, sama sa ATTACH, DETACH, MAP ug UNMAP, ibabaw sa virtio transport nga walay pagsundog sa mga lamesa sa panid sa panumduman;
    • Para 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 performance 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 Zombieload, pagmaniobra sa leakage sa impormasyon pinaagi sa mga third-party nga mga channel nga mahitabo sa panahon sa operasyon sa mekanismo alang sa asynchronous nga pagkabalda sa mga operasyon (TAA, TSX Asynchronous Abort);
  • network subsystem:
    • padayon nga integrasyon 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 ubay-ubay nga mga ruta pinaagi sa lain-laing mga network interface nga may kalabutan sa lain-laing mga IP address. Sa bag-ong isyu gidugang usa ka mekanismo sa pagtakda sa imong kaugalingong traffic hashing nga mga polisiya para sa IPv4 ug IPv6 (multipath hash policy), nga nagpaposible gikan sa user space aron mahibal-an kung unsang mga field sa mga packet, lakip na ang mga encapsulated, ang gamiton sa pagkalkula sa hash nga nagtino sa pagpili sa dalan. alang sa pakete;
    • Ang suporta sa socket gidugang sa virtual transport virtio SOCK_SEQPACKET (han-ay ug kasaligan nga pagpasa sa mga datagrams);
    • 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. . Sa bag-ong bersyon gidugang nagpasabot sa pagbalhin sa kontrol ngadto sa laing socket sa kaso sa kapakyasan sa diha nga ang pagproseso sa usa ka hangyo pinaagi sa una nga pinili nga socket (pagsulbad sa problema sa pagkawala sa mga indibidwal nga mga koneksyon sa diha nga restarting mga serbisyo);
  • kagamitan:
    • sa amdgpu driver gipatuman suporta alang sa bag-ong AMD Radeon RX 6000 nga serye sa mga GPU, 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 daan nga AMD GPUs, ang suporta alang sa ASPM (Active State Power Management) power saving mechanism gi-enable pinaagi 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. Lakip ang paggamit sa HMM, mahimo nimong organisahon ang usa ka gipaambit nga luna sa address tali sa GPU ug CPU, diin ang GPU maka-access sa panguna nga memorya sa proseso;
    • gidugang inisyal nga suporta sa teknolohiya AMD Smart Shift, nga dinamikong nagbag-o sa mga parameter sa konsumo sa kuryente sa CPU ug GPU sa mga laptop nga adunay chipset ug AMD graphics card aron mapausbaw ang pasundayag sa pagdula, pag-edit sa video ug pag-render sa 3D;
    • sa i915 driver alang sa Intel video card apil suporta alang sa Intel Alderlake P chips;
    • gidugang drm/hyperv driver alang sa Hyper-V virtual graphics adapter;
    • gidugang simpledrm graphics driver nga naggamit sa EFI-GOP o VESA framebuffer nga gihatag sa UEFI firmware o BIOS para sa output. Ang nag-unang katuyoan sa drayber mao ang paghatag og mga kapabilidad sa graphical nga output sa mga inisyal nga yugto sa boot, sa dili pa magamit ang usa ka hingpit nga drayber sa DRM. Ang drayber mahimo usab nga gamiton isip usa ka temporaryo nga solusyon alang sa mga ekipo nga wala pay lumad nga mga drayber sa DRM;
    • gidugang all-in-one nga suporta sa kompyuter Raspberry Pi 400;
    • Gidugang ang dell-wmi-privacy driver aron suportahan ang mga switch sa hardware sa camera ug mikropono nga gilakip sa mga laptop sa Dell;
    • alang sa Lenovo laptops gidugang WMI interface para sa pag-usab sa BIOS parameters pinaagi sa sysfs /sys/class/firmware-attributes/;
    • gipalapdan suporta alang sa mga himan nga adunay USB4 interface;
    • gidugang suporta alang sa mga sound card ug codec AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ug Texas Instruments TAS2505. Gipauswag nga suporta sa audio sa HP ug ASUS nga mga laptop. Gidugang mga patch aron makunhuran ang mga paglangan sa dili pa magsugod ang audio sa pagdula sa mga aparato nga adunay USB interface.

Tinubdan – opennet.ru.

Source: linux.org.ru