Linux Kernel tso tawm 5.12

Tom qab ob lub hlis ntawm kev txhim kho, Linus Torvalds nthuav tawm qhov tso tawm ntawm Linux ntsiav 5.12. Ntawm cov kev hloov pauv tseem ceeb tshaj plaws: kev txhawb nqa rau zoned thaiv cov cuab yeej hauv Btrfs, muaj peev xwm los qhia cov neeg siv IDs rau cov ntaub ntawv kaw lus, tu cov cuab yeej cuab tam ARM architectures, "kev mob siab rau" sau hom hauv NFS, LOOKUP_CACHED mechanism rau kev txiav txim siab cov ntaub ntawv taug kev los ntawm cache. , kev txhawb nqa rau cov lus qhia atomic hauv BPF, kev debugging system KFENCE txhawm rau txheeb xyuas qhov yuam kev thaum ua haujlwm nrog lub cim xeeb, NAPI kev xaiv tsa hom khiav hauv cov xov xov sib cais hauv pawg network, ACRN hypervisor, muaj peev xwm hloov pauv tus qauv preempt ntawm ya hauv txoj haujlwm. teem sijhawm thiab kev txhawb nqa rau LTO optimizations thaum tsim hauv Clang.

Tus tshiab version suav nrog 14170 (hauv qhov kev tso tawm dhau los 15480) kho los ntawm 1946 (1991) cov neeg tsim tawm, thaj loj yog 38 MB (cov kev hloov pauv cuam tshuam rau 12102 (12090) cov ntaub ntawv, 538599 (868025) kab code tau ntxiv, 333377 (261456) kab tau deleted). Kwv yees li 43% ntawm tag nrho cov kev hloov pauv tau qhia hauv 5.12 muaj feem cuam tshuam rau cov cuab yeej tsav tsheb, kwv yees li 17% ntawm cov kev hloov pauv cuam tshuam txog kev hloov kho cov cai tshwj xeeb rau cov khoom siv kho vajtse, 12% cuam tshuam nrog pawg network, 5% cuam tshuam nrog cov ntaub ntawv, thiab 4% muaj feem xyuam nrog cov kernel subsystems.

Main innovations:

  • Disk subsystem, I / O thiab cov ntaub ntawv systems
    • Lub peev xwm los qhia cov neeg siv IDs rau mounted cov ntaub ntawv systems tau siv (koj tuaj yeem ua daim ntawv qhia cov ntaub ntawv ntawm ib tus neeg siv ntawm ib qho kev faib txawv teb chaws nrog lwm tus neeg siv ntawm cov kab ke tam sim no). Mapping yog txhawb rau FAT, ext4 thiab XFS cov ntaub ntawv. Lub tswv yim ua haujlwm ua rau nws yooj yim dua rau kev sib qhia cov ntaub ntawv ntawm cov neeg siv sib txawv thiab ntawm cov khoos phis tawj sib txawv, suav nrog daim ntawv qhia yuav siv nyob rau hauv systemd-homed portable home directory mechanism, tso cai rau cov neeg siv txav lawv cov ntawv hauv tsev mus rau lwm cov xov xwm thiab siv lawv ntawm cov khoos phis tawj sib txawv, daim ntawv qhia. tus neeg siv IDs uas tsis sib xws. Lwm daim ntawv thov tseem ceeb yog los npaj cov kev sib koom nkag mus rau cov ntaub ntawv los ntawm tus tswv tsev sab nraud, tsis tas yuav hloov cov ntaub ntawv hais txog tus tswv ntawm cov ntaub ntawv hauv cov ntaub ntawv.
    • Cov LOOKUP_CACHED thaj ua rau thaj tau raug coj mus rau hauv cov ntsiav, tso cai rau kev ua haujlwm los txiav txim siab txoj hauv kev ntawm cov neeg siv qhov chaw tsis muaj kev thaiv, tsuas yog raws li cov ntaub ntawv muaj nyob hauv cache. LOOKUP_CACHED hom yog qhib rau hauv openat2() hu los ntawm kev hla tus chij RESOLVE_CACHED, uas cov ntaub ntawv tau txais kev pab tsuas yog los ntawm lub cache, thiab yog tias txoj kev txiav txim siab yuav tsum tau nkag mus rau lub tsav, EAGAIN yuam kev raug xa rov qab.
    • Btrfs cov ntaub ntawv kaw lus tau ntxiv kev txhawb nqa thawj zaug rau cov khoom siv thaiv thaiv (cov khoom siv ntawm cov khoom siv sib nqus sib nqus los yog NVMe SSDs, qhov chaw khaws cia uas tau muab faib ua cov cheeb tsam uas ua rau pawg blocks lossis cov haujlwm, uas tsuas yog cov ntaub ntawv sib txuas ntxiv tau tso cai, hloov kho tag nrho pawg ntawm cov blocks). Hauv hom nyeem nkaus xwb, kev txhawb nqa rau cov blocks nrog metadata thiab cov ntaub ntawv me dua ib nplooj ntawv (subpage) yog siv.
    • Hauv F2FS cov ntaub ntawv kaw lus, muaj peev xwm xaiv cov algorithm thiab compression qib tau ntxiv. Ntxiv kev txhawb nqa rau qib siab compression rau LZ4 algorithm. Ua tiav qhov kev xaiv checkpoint_merge mounting.
    • Ib qho tshiab ioctl hais kom ua FS_IOC_READ_VERITY_METADATA tau siv los nyeem metadata los ntawm cov ntaub ntawv tiv thaiv nrog fs-verity.
    • Tus neeg siv NFS siv hom kev sau "xav tau" (sau = xav), thaum qhib, sau cov haujlwm rau cov ntaub ntawv tam sim ntawd hloov mus rau server, hla cov nplooj ntawv cache. Hom no tso cai rau koj txo qis kev siv lub cim xeeb, muab cov ntaub ntawv tau txais tam sim ntawd txog qhov kawg ntawm qhov chaw dawb hauv cov ntaub ntawv kaw lus, thiab qee lub sijhawm ua rau nws ua tau kom ua tiav qhov kev ua tau zoo.
    • Cov kev xaiv mount tshiab tau ntxiv rau CIFS (SMB): acregmax los tswj cov ntaub ntawv caching thiab acdirmax los tswj cov npe metadata caching.
    • Hauv XFS, ntau txoj xov quota kuaj xyuas hom tau qhib, fsync kev ua tiav tau nrawm dua, thiab cov lej loj hlob tau npaj los siv cov haujlwm ntawm kev txo qhov loj ntawm cov ntaub ntawv kaw lus.
  • Kev pabcuam nco thiab system
    • DTMP (Dynamic Thermal Power Management) subsystem tau ntxiv lawm, tso cai rau koj los tswj lub zog siv hluav taws xob ntawm cov khoom siv sib txawv raws li qhov ntsuas qhov ntsuas kub.
    • Lub peev xwm los tsim cov kernel siv Clang compiler nrog kev suav nrog kev ua kom zoo ntawm cov theem txuas (LTO, Link Time Optimization) tau ua tiav. LTO optimizations txawv los ntawm kev coj mus rau hauv tus account lub xeev ntawm tag nrho cov ntaub ntawv koom nyob rau hauv lub tsim txheej txheem, thaum ib txwm optimization hom optimize txhua cov ntaub ntawv sib cais thiab tsis txhob coj mus rau hauv tus account lub tej yam kev mob rau hu rau lub luag hauj lwm teev nyob rau hauv lwm cov ntaub ntawv. Piv txwv li, nrog LTO, inline deployment yog ua tau rau kev khiav hauj lwm los ntawm lwm cov ntaub ntawv, tsis siv code yog tsis suav nrog nyob rau hauv cov ntaub ntawv executable, hom checking thiab dav optimization yog nqa tawm nyob rau hauv lub project theem tag nrho. LTO kev txhawb nqa tam sim no txwv rau x86 thiab ARM64 architectures.
    • Nws muaj peev xwm xaiv tau preemption hom (PREEMPT) nyob rau hauv lub sij hawm ua hauj lwm ntawm lub khau raj theem (preempt = tsis muaj / yeem / tag nrho) los yog thaum ua hauj lwm los ntawm debugfs (/debug/sched_debug), yog hais tias tus PREEMPT_DYNAMIC teeb tsa tau teev thaum tsim lub kernel. Yav dhau los, hom extrusion tsuas yog teem rau ntawm qhov sib dhos tsis muaj qib. Qhov kev hloov pauv tso cai rau kev xa khoom xa mus rau kernels nrog PREEMPT hom enabled, uas muab qhov tsawg kawg nkaus latency rau desktops ntawm tus nqi ntawm ib qho kev nplua me me, thiab yog tias tsim nyog rov qab mus rau PREEMPT_VOLUNTARY (ib nrab hom rau desktops) lossis PREEMPT_NONE (muab qhov siab tshaj plaws rau cov servers) .
    • Kev them nyiaj yug rau kev ua haujlwm atomic BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG thiab BPF_CMPXCHG tau ntxiv rau BPF subsystem.
    • BPF cov kev pab cuam tau muab lub peev xwm nkag mus rau cov ntaub ntawv ntawm pawg siv cov pointers nrog kev sib txawv offsets. Piv txwv li, yog tias yav dhau los koj tsuas tuaj yeem siv qhov ntsuas qhov ntsuas tsis tu ncua kom nkag mus rau ib qho array ntawm pawg, tam sim no koj tuaj yeem siv qhov hloov pauv. Kev tswj xyuas tsuas yog nyob hauv thaj tsam uas twb muaj lawm yog ua los ntawm BPF tus neeg txheeb xyuas. Qhov tshwj xeeb no tsuas yog muaj rau cov kev pabcuam tshwjxeeb vim muaj kev txhawj xeeb txog kev siv cov kev xav tau ntawm kev ua haujlwm tsis zoo.
    • Ntxiv lub peev xwm los txuas BPF cov kev pab cuam rau liab qab tracepoints uas tsis cuam tshuam nrog cov xwm txheej pom nyob rau hauv cov neeg siv qhov chaw (ABI preservation tsis tau lav rau cov tracepoints).
    • Kev them nyiaj yug rau CXL 2.0 (Compute Express Link) tsheb npav tau raug siv, uas yog siv los teeb tsa kev sib cuam tshuam ntawm CPU thiab nco cov khoom siv (tso cai rau koj siv lwm lub cim xeeb li ib feem ntawm RAM lossis lub cim xeeb ruaj khov, zoo li lub cim xeeb no. tau txuas los ntawm tus txheej txheem nco tswj hauv CPU).
    • Ntxiv nvmem tsav tsheb los muab cov ntaub ntawv los ntawm firmware-reserved lub cim xeeb thaj chaw uas tsis ncaj qha mus rau Linux (piv txwv li, EEPROM nco uas yog lub cev siv tau rau lub firmware nkaus xwb, lossis cov ntaub ntawv uas tsuas yog siv tau thaum lub caij khau raj thaum ntxov).
    • Kev them nyiaj yug rau "oprofile" profileing system tau raug tshem tawm, uas tsis tau siv dav thiab tau hloov los ntawm cov txheej txheem niaj hnub perf.
    • Lub io_uring asynchronous I/O interface muab kev koom ua ke nrog cgroups uas tswj kev siv nco.
    • RISC-V architecture txhawb NUMA systems, nrog rau kprobes thiab uprobes mechanisms.
    • Ntxiv lub peev xwm los siv kcmp() system hu tsis hais txog kev ua haujlwm ntawm cov txheej txheem hauv xeev snapshots (checkpoint/restore).
    • Lub EXPORT_UNUSED_SYMBOL() thiab EXPORT_SYMBOL_GPL_FUTURE() macro, uas tsis tau siv hauv kev xyaum tau ntau xyoo, tau raug tshem tawm.
  • Virtualization thiab Kev Ruaj Ntseg
    • Ntxiv KFence (Kernel Electric Fence) kev tiv thaiv kev tiv thaiv, uas ntes cov yuam kev thaum ua haujlwm nrog lub cim xeeb, xws li tsis muaj kev cuam tshuam thiab nkag mus tom qab tso lub cim xeeb. Tsis zoo li KASAN debugging mechanism, KFence subsystem yog tus cwj pwm los ntawm kev ua haujlwm siab thiab qis nyiaj siv ua haujlwm, uas tso cai rau koj los ntes cov cim xeeb tsis raug uas tshwm sim tsuas yog hauv kev ua haujlwm lossis lub sijhawm ua haujlwm ntev.
    • Ntxiv kev txhawb nqa rau ACRN hypervisor, sau nrog lub qhov muag rau kev npaj rau kev ua haujlwm tiag tiag thiab tsim nyog rau kev siv hauv lub luag haujlwm tseem ceeb. ACRN muab nyiaj siv ua haujlwm tsawg kawg nkaus, lav tsis tshua muaj latency thiab ua haujlwm txaus thaum cuam tshuam nrog cov khoom siv. Txhawb virtualization ntawm CPU cov peev txheej, I / O, network subsystem, graphics thiab suab ua haujlwm. ACRN tuaj yeem siv los khiav ntau lub tshuab virtual cais hauv cov tshuab hluav taws xob tswj hluav taws xob, cov khoom siv hluav taws xob, cov ntaub ntawv xov xwm tsheb, cov neeg siv khoom siv IoT thiab lwm yam cuab yeej siv. ACRN txhawb nqa ob hom kev siv qhua - Kev Pabcuam tshwjxeeb VMs, uas yog siv los tswj cov kev pabcuam (CPU, nco, I/O, thiab lwm yam), thiab cov neeg siv kev cai VMs, uas tuaj yeem khiav Linux, Android thiab Windows faib.
    • Hauv IMA (Integrity Measurement Architecture) subsystem, uas tuav cov ntaub ntawv hash rau kev tshuaj xyuas qhov ncaj ncees ntawm cov ntaub ntawv thiab cov metadata cuam tshuam, tam sim no nws tuaj yeem tshawb xyuas qhov ncaj ncees ntawm cov ntaub ntawv ntawm cov ntsiav nws tus kheej, piv txwv li, txhawm rau taug qab cov kev hloov pauv hauv SELinux cov cai. .
    • Lub peev xwm los cuam tshuam Xen hypercalls thiab xa lawv mus rau emulator khiav hauv cov neeg siv qhov chaw tau ntxiv rau KVM hypervisor.
    • Ntxiv lub peev xwm los siv Linux ua lub hauv paus ib puag ncig rau Hyper-V hypervisor. Lub hauv paus ib puag ncig muaj kev nkag ncaj qha rau cov khoom siv thiab siv los khiav cov tshuab qhua (analogous rau Dom0 hauv Xen). Txog rau tam sim no, Hyper-V (Microsoft Hypervisor) txhawb Linux nkaus xwb nyob rau hauv ib puag ncig qhua, tab sis tus hypervisor nws tus kheej tau tswj hwm los ntawm ib puag ncig Windows.
    • Ntxiv kev txhawb nqa rau inline encryption rau eMMC phaib, tso cai rau koj siv cov txheej txheem encryption tsim rau hauv tus tsav tsav uas pob tshab encrypt thiab decrypt I / O.
    • Kev txhawb nqa rau RIPE-MD 128/256/320 thiab Tiger 128/160/192 hashes, uas tsis siv rau hauv cov tub ntxhais, nrog rau Salsa20 kwj cipher, uas tau hloov los ntawm ChaCha20 algorithm, tau raug tshem tawm ntawm lub crypto subsystem. Lub blake2 algorithm tau hloov kho los siv blake2s.
  • Network subsystem
    • Ntxiv lub peev xwm txav NAPI kev xaiv tsa tus neeg saib xyuas rau cov khoom siv hauv lub network rau cov xov xov sib cais, uas tso cai rau kev txhim kho kev ua haujlwm rau qee hom kev ua haujlwm. Yav dhau los, kev xaiv tsa tau ua nyob rau hauv cov ntsiab lus ntawm softirq thiab tsis tau them los ntawm tus neeg ua haujlwm teem sijhawm, uas ua rau nws nyuaj rau kev ua kom zoo-grained optimization kom ua tiav qhov siab tshaj plaws. Kev ua tiav nyob rau hauv cov xov xov sib cais tso cai rau tus neeg saib xyuas kev xaiv tsa los ntawm cov neeg siv qhov chaw, txuas mus rau tus kheej CPU cores, thiab coj mus rau hauv tus account thaum teem caij ua haujlwm hloov. Txhawm rau pab kom hom tshiab hauv sysfs, qhov /sys/class/net/ parameter tau thov / xov.
    • Kev koom ua ke rau hauv lub hauv paus ntawm MPTCP (MultiPath TCP), qhov txuas ntxiv ntawm TCP raws tu qauv rau kev teeb tsa kev ua haujlwm ntawm TCP kev sib txuas nrog kev xa cov pob ntawv ib txhij ntawm ntau txoj hauv kev los ntawm kev sib txawv network cuam tshuam nrog sib txawv IP chaw nyob. Qhov kev tso tawm tshiab ntxiv lub peev xwm los muab qhov tseem ceeb rau qee cov xov, uas tso cai rau, piv txwv li, los npaj cov haujlwm ntawm cov xov thaub qab uas tig rau tsuas yog muaj teeb meem nrog cov xov thawj.
    • IGMPv3 ntxiv kev txhawb nqa rau EHT (Explicit Host Tracking) mechanism.
    • Netfilter's packet filtering engine muab lub peev xwm los muaj qee lub rooj kom tau txais kev tswj hwm tshwj xeeb (piv txwv li, cov txheej txheem hluav taws xob tom qab tuaj yeem ua tswv cuab ntawm qee lub rooj, tiv thaiv lwm tus los ntawm kev cuam tshuam nrog lawv).
  • Khoom siv
    • Peb tau ntxuav ARM platforms uas siv tsis tau thiab tsis tu ncua. Cov cai rau efm32, picoxcell, prima2, tango, u300, zx thiab c6x platforms, nrog rau lawv cov tsav tsheb cuam tshuam, tau raug tshem tawm.
    • Tus tsav tsheb amdgpu muab lub peev xwm rau overclock (OverDrive) phaib raws li Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx). Ntxiv kev txhawb nqa rau FP16 pixel hom rau DCE (duab maub los cav) los ntawm 8th mus rau 11th tiam. Rau GPU Navy Flounder (Navi 21) thiab APU Van Gogh, muaj peev xwm rov pib dua GPU tau ua tiav.
    • Tus tsav tsheb i915 rau Intel daim npav daim npav siv lub i915.mitigations parameter rau lov tes taw kev sib cais thiab kev tiv thaiv cov txheej txheem hauv kev pom zoo ntawm kev ua haujlwm tau zoo. Rau cov chips pib los ntawm Tiger Lake, kev txhawb nqa rau VRR (Variable Rate Refresh) mechanism yog suav nrog, uas tso cai rau koj hloov pauv tus saib xyuas tus nqi tshiab kom ntseeg tau tias du thiab tsis muaj qhov khoob thaum ua si. Kev them nyiaj yug rau Intel Clear Color thev naus laus zis suav nrog rau kev txhim kho xim raug. Ntxiv kev txhawb nqa rau DP-HDMI 2.1. Lub peev xwm los tswj lub teeb rov qab ntawm eDP panels tau ua tiav. Rau Gen9 GPUs nrog LSPCON (Level Shifter thiab Protocol Converter), kev txhawb nqa HDR tau qhib.
    • Tus tsav tsheb nouveau ntxiv kev txhawb nqa thawj zaug rau NVIDIA GPUs raws li GA100 (Ampere) architecture.
    • Tus tsav tsheb msm ntxiv kev txhawb nqa rau Adreno 508, 509 thiab 512 GPUs siv hauv SDM (Snapdragon) 630, 636 thiab 660 chips.
    • Ntxiv kev txhawb nqa rau Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s thiab Pioneer DJM-750 suab phaib. Ntxiv kev txhawb nqa rau Intel Alder Lake PCH-P audio subsystem. Kev them nyiaj yug rau software simulation ntawm kev sib txuas thiab disconnecting lub suab connector tau siv rau kev debugging handlers nyob rau hauv cov neeg siv qhov chaw.
    • Ntxiv kev txhawb nqa rau Nintendo 64 game consoles tsim los ntawm 1996 txog 2003 (kev sim yav dhau los rau chaw nres nkoj Linux rau Nintendo 64 tsis tiav thiab tau muab cais ua Vaporware). Qhov kev txhawb siab rau kev tsim qhov chaw nres nkoj tshiab rau lub platform uas tsis tau tso tawm rau yuav luag nees nkaum xyoo, yog lub siab xav txhawb kev txhim kho ntawm emulators thiab ua kom yooj yim rau kev sib tw ntawm kev ua si.
    • Ntxiv tsav tsheb rau Sony PlayStation 5 DualSense game maub los.
    • Ntxiv kev txhawb nqa rau ARM boards, pab kiag li lawm thiab platforms: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Ob Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Ntxiv kev txhawb nqa rau Purism Librem5 Evergreen, Xperia Z3 + / Z4 / Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 smartphones.
    • Ntxiv bcm-vk tsav tsheb rau Broadcom VK accelerator boards (piv txwv li, Valkyrie thiab Viper PCIe boards), uas tuaj yeem siv los tshem tawm suab, yees duab thiab duab ua haujlwm, nrog rau kev ua haujlwm ntsig txog kev sib txuas, mus rau ib qho khoom siv cais.
    • Ntxiv kev txhawb nqa rau Lenovo IdeaPad platform nrog lub peev xwm los tswj kev them nyiaj tas li thiab keyboard backlighting. Kuj tau muab yog kev txhawb nqa rau ACPI profile ntawm ThinkPad platform nrog lub peev xwm los tswj cov qauv siv hluav taws xob. Ntxiv tsav tsheb rau Lenovo ThinkPad X1 Tablet Gen 2 HID subsystem.
    • Ntxiv ov5647 tsav tsheb nrog kev txhawb nqa lub koob yees duab module rau Raspberry Pi.
    • Ntxiv kev txhawb nqa rau RISC-V SoC FU740 thiab HiFive Unleashed boards. Tus tsav tsheb tshiab rau Kendryte K210 nti kuj tau ntxiv.

Tau qhov twg los: opennet.ru

Ntxiv ib saib