Hoʻokuʻu ʻo Linux kernel 5.12

Ma hope o ʻelua mahina o ka hoʻomohala ʻana, ua hōʻike ʻo Linus Torvalds i ka hoʻokuʻu ʻana o ka Linux kernel 5.12. Ma waena o nā hoʻololi kaulana loa: kākoʻo no nā mea poloka i hoʻopaʻa ʻia ma Btrfs, ka hiki ke palapala i nā ID mea hoʻohana no ka ʻōnaehana faila, hoʻomaʻemaʻe i ka hoʻoilina ARM architectures, kahi ʻano kākau "makemake" ma NFS, ke ʻano LOOKUP_CACHED no ka hoʻoholo ʻana i nā ala faila mai ka cache. , kākoʻo no nā ʻōlelo aʻoaʻo atomic ma BPF, kahi ʻōnaehana debugging KFENCE no ka ʻike ʻana i nā hewa i ka wā e hana ana me ka hoʻomanaʻo, ke ʻano koho balota NAPI e holo ana i kahi thread kernel ʻokoʻa i ka waihona pūnaewele, ACRN hypervisor, ka hiki ke hoʻololi i ke kumu preempt ma ka lele i ka hana. mea hoʻonohonoho a me ke kākoʻo no ka LTO optimizations i ke kūkulu ʻana ma Clang.

Aia ka mana hou i ka 14170 (i ka hoʻokuʻu mua ʻana 15480) hoʻoponopono mai 1946 (1991) nā mea hoʻomohala, ʻo ka nui o ka patch he 38 MB (nā hoʻololi i hoʻopili ʻia i nā faila 12102 (12090), 538599 (868025) nā laina o ke code i hoʻohui ʻia, 333377 (261456) ua holoi ʻia nā laina). Ma kahi o 43% o nā hoʻololi a pau i hoʻokomo ʻia ma 5.12 e pili ana i nā mea hoʻokele, ma kahi o 17% o nā hoʻololi e pili ana i ka hoʻonui ʻana i nā code kikoʻī i nā hale hana hardware, 12% pili i ka waihona pūnaewele, 5% pili i nā ʻōnaehana faila, a me 4% pili i nā subsystem kernel kūloko.

Nā hana hou nui:

  • Subsystem disk, I/O a me nā ʻōnaehana waihona
    • Ua hoʻokō ʻia ka hiki ke palapala i nā ID mea hoʻohana no nā ʻōnaehana faila i kau ʻia (hiki iā ʻoe ke palapala i nā faila o kekahi mea hoʻohana ma kahi ʻāpana haole i kau ʻia me kekahi mea hoʻohana ma ka ʻōnaehana o kēia manawa). Kākoʻo ʻia ka palapala palapala no nā ʻōnaehana faila FAT, ext4 a me XFS. ʻO ka hana i manaʻo ʻia e maʻalahi ka kaʻana like ʻana i nā faila ma waena o nā mea hoʻohana like ʻole a ma nā kamepiula like ʻole, me ka palapala ʻāina e hoʻohana ʻia i loko o ka systemd-homed portable home directory mechanism, e ʻae ana i nā mea hoʻohana e hoʻoneʻe i kā lākou home directories i waho media a hoʻohana iā lākou ma nā kamepiula like ʻole, ka palapala ʻāina. nā ID mea hoʻohana i like ʻole. ʻO kekahi noi maikaʻi ʻē aʻe ʻo ia ka hoʻonohonoho ʻana i ka hāʻawi ʻana i ke komo ʻana i nā faila mai kahi hoʻokipa waho, me ka ʻole o ka hoʻololi maoli ʻana i ka ʻikepili e pili ana i nā mea nona nā faila i ka ʻōnaehana faila.
    • Ua hoʻokomo ʻia nā ʻāpana LOOKUP_CACHED i loko o ka kernel, e ʻae ana i nā hana e hoʻoholo i kahi ala faila mai kahi mea hoʻohana me ka pale ʻole ʻana, ma muli wale nō o ka ʻikepili i loaʻa i ka cache. Hoʻohana ʻia ke ʻano LOOKUP_CACHED ma ke kelepona openat2() ma ke kau ʻana i ka hae RESOLVE_CACHED, kahi e lawelawe ʻia ai ka ʻikepili mai ka huna huna wale nō, a inā makemake ka hoʻoholo ʻana i ke ala e komo i ka drive, ua hoʻihoʻi ʻia ka hewa EAGAIN.
    • Ua hoʻohui ka ʻōnaehana faila Btrfs i ke kākoʻo mua no nā mea poloka i hoʻopaʻa ʻia (nā polokalamu ma nā disk magnetic paʻakikī a i ʻole NVMe SSDs, ka wahi mālama i hoʻokaʻawale ʻia i nā ʻāpana e hana i nā pūʻulu o nā poloka a i ʻole nā ​​​​wahi, kahi e ʻae ʻia ai ka hoʻohui ʻana o ka ʻikepili. hōʻano hou i ka hui holoʻokoʻa o nā poloka). Ma ke ʻano heluhelu wale nō, hoʻokō ʻia ke kākoʻo no nā poloka me ka metadata a me ka ʻikepili liʻiliʻi ma mua o kahi ʻaoʻao (subpage).
    • Ma ka ʻōnaehana faila F2FS, ua hoʻohui ʻia ka hiki ke koho i ka algorithm a me ka pae hoʻoemi. Hoʻohui i ke kākoʻo no ka hoʻopiʻi kiʻekiʻe no ka LZ4 algorithm. Hoʻokō i ke koho kau ʻana checkpoint_merge.
    • Ua hoʻokō ʻia kahi kauoha ioctl hou FS_IOC_READ_VERITY_METADATA e heluhelu i ka metadata mai nā faila i pale ʻia me ka fs-verity.
    • Hoʻokomo ka mea kūʻai NFS i kahi ʻano kākau "makemake" (kākau = makemake), i ka wā e hiki ai, e hoʻololi koke ʻia nā hana kākau i kahi faila i ke kikowaena, e kāpae ana i ka cache ʻaoʻao. Hāʻawi kēia ʻano iā ʻoe e hōʻemi i ka hoʻohana ʻana i ka hoʻomanaʻo, hāʻawi i ka loaʻa koke ʻana o ka ʻike e pili ana i ka pau ʻana o ka hakahaka manuahi i ka ʻōnaehana faila, a ma kekahi mau kūlana e hiki ai ke hoʻokō i ka hana hoʻonui.
    • Ua hoʻohui ʻia nā koho mauna hou i ka CIFS (SMB): acregmax no ka hoʻomalu ʻana i ka faila a me ka acdirmax no ka mālama ʻana i ka cache metadata papa kuhikuhi.
    • I ka XFS, ua hoʻohana ʻia ke ʻano hoʻopaʻa ʻana i ka nui-threaded quota checking mode, ua hoʻokō ʻia ka fsync execution, a ua mākaukau nā code growfs e hoʻokō i ka hana o ka hōʻemi ʻana i ka nui o ka ʻōnaehana faila.
  • Nā lawelawe hoʻomanaʻo a me nā ʻōnaehana
    • Ua hoʻohui ʻia ka subsystem DTMP (Dynamic Thermal Power Management), e ʻae iā ʻoe e hoʻoponopono ikaika i ka hoʻohana ʻana i ka mana o nā mea like ʻole e pili ana i nā palena wela maʻamau.
    • Ua hoʻokō ʻia ka hiki ke kūkulu i ka kernel e hoʻohana ana i ka Clang compiler me ka hoʻopili ʻana i nā optimizations ma ke kahua hoʻopili (LTO, Link Time Optimization). ʻOkoʻa ka LTO optimizations ma ka noʻonoʻo ʻana i ke kūlana o nā faila a pau i pili i ke kaʻina hana, ʻoiai nā ʻano loiloi kuʻuna e hoʻokaʻawale i kēlā me kēia faila a ʻaʻole e noʻonoʻo i nā kūlana no ke kāhea ʻana i nā hana i wehewehe ʻia i nā faila ʻē aʻe. No ka laʻana, me ka LTO, hiki ke hoʻokomo ʻia i loko o ka laina no nā hana mai nā faila ʻē aʻe, ʻaʻole i hoʻokomo ʻia nā code i hoʻohana ʻole ʻia i ka faila hiki ke hoʻokō ʻia, ke nānā ʻana i ke ʻano a me ka loiloi maʻamau i ka pae o ka papahana holoʻokoʻa. Hoʻopili ʻia ke kākoʻo LTO i kēia manawa i ka x86 a me ka ARM64 architecture.
    • Hiki ke koho i nā ʻano preemption (PREEMPT) i ka mea hoʻonohonoho hana ma ke kahua boot (preempt=none/voluntary/full) a i ʻole e hana ana ma o debugfs (/debug/sched_debug), inā i kuhikuhi ʻia ka hoʻonohonoho PREEMPT_DYNAMIC i ke kūkulu ʻana i ka kernel. Ma mua, hiki ke hoʻonohonoho ʻia ke ʻano extrusion ma ka pae ʻāpana hui. Hāʻawi ka hoʻololi i ka hāʻawi ʻana i nā kernels me ka mode PREEMPT i hiki, e hāʻawi ana i ka latency liʻiliʻi no nā papapihi ma ke kumu kūʻai o kahi hoʻopaʻi throughput liʻiliʻi, a inā pono e hāʻule hou i PREEMPT_VOLUNTARY (kahi mode waena no nā desktops) a i ʻole PREEMPT_NONE (hāʻawi i ka throughput kiʻekiʻe no nā kikowaena) .
    • Kākoʻo no nā hana atomic BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG a me BPF_CMPXCHG ua hoʻohui ʻia i ka subsystem BPF.
    • Hāʻawi ʻia nā polokalamu BPF i ka hiki ke komo i ka ʻikepili ma ka waihona me ka hoʻohana ʻana i nā kuhikuhi me nā offset hoʻololi. No ka laʻana, inā ma mua hiki iā ʻoe ke hoʻohana wale i kahi kuhikuhi element mau no ke komo ʻana i kahi ʻano ma ka waihona, i kēia manawa hiki iā ʻoe ke hoʻohana i kahi hoʻololi. Hoʻokō ʻia ka mana komo i loko o nā palena i kēia manawa e ka BPF verifier. Loaʻa kēia hiʻohiʻona i nā polokalamu pono ma muli o nā hopohopo e pili ana i ka hoʻohana ʻana i nā nāwaliwali o ka hoʻokō code speculative.
    • Hoʻohui i ka hiki ke hoʻopili i nā polokalamu BPF i nā tracepoints ʻaʻole i pili me nā hanana trace i ʻike ʻia ma kahi o ka mea hoʻohana (ʻaʻole i hōʻoia ʻia ka mālama ʻana o ABI no ia mau tracepoints).
    • Ua hoʻokō ʻia ke kākoʻo no ke kaʻa kaʻa CXL 2.0 (Compute Express Link), i hoʻohana ʻia e hoʻonohonoho i ka wikiwiki wikiwiki ma waena o ka CPU a me nā mea hoʻomanaʻo (e ʻae iā ʻoe e hoʻohana i nā mea hoʻomanaʻo waho ma ke ʻano he RAM a i ʻole ka hoʻomanaʻo mau, me he mea lā kēia hoʻomanaʻo. ua hoʻohui ʻia ma o kahi mea hoʻomanaʻo hoʻomanaʻo maʻamau i ka CPU).
    • Hoʻohui ʻia ka mea hoʻokele nvmem e kiʻi i ka ʻikepili mai nā wahi hoʻomanaʻo i hoʻopaʻa ʻia i ka firmware i hiki ʻole ke loaʻa iā Linux (e laʻa, ka hoʻomanaʻo EEPROM hiki ke loaʻa kino wale i ka firmware, a i ʻole ka ʻikepili i hiki ke loaʻa wale i ka wā o ka wā boot mua).
    • Ua wehe ʻia ke kākoʻo no ka ʻōnaehana profiling "oprofile", ʻaʻole i hoʻohana nui ʻia a ua hoʻololi ʻia e ka mīkini perf hou.
    • Hāʻawi ka io_uring asynchronous I/O i ka hoʻohui ʻana me nā hui c mālama i ka hoʻohana ʻana i ka hoʻomanaʻo.
    • Kākoʻo ka hale hoʻolālā RISC-V i nā ʻōnaehana NUMA, a me nā mīkini kprobes a me nā uprobes.
    • Hoʻohui i ka hiki ke hoʻohana i ke kelepona ʻōnaehana kcmp () me ka nānā ʻole i ka hana o ke kaʻina hana paʻi mokuʻāina (checkpoint/restore).
    • Ua wehe ʻia nā macros EXPORT_UNUSED_SYMBOL() a me EXPORT_SYMBOL_GPL_FUTURE(), ʻaʻole i hoʻohana ʻia i ka hana no nā makahiki he nui.
  • Virtualization a me ka palekana
    • Hoʻohui ʻia ka mīkini pale KFence (Kernel Electric Fence), e hopu ana i nā hewa i ka wā e hana ana me ka hoʻomanaʻo, e like me ka overruns buffer a me ke komo ʻana ma hope o ka hoʻokuʻu ʻana i ka hoʻomanaʻo. ʻAʻole like me ka ʻōnaehana debugging KASAN, ʻike ʻia ka subsystem KFence e ka wikiwiki hana kiʻekiʻe a me ka haʻahaʻa haʻahaʻa, e hiki ai iā ʻoe ke hopu i nā hewa hoʻomanaʻo e ʻike wale ʻia ma nā ʻōnaehana hana a i ka wā o ka hana lōʻihi.
    • Hoʻohui i ke kākoʻo no ka ACRN hypervisor, i kākau ʻia me ka maka i ka mākaukau no nā hana manawa maoli a kūpono no ka hoʻohana ʻana i nā ʻōnaehana koʻikoʻi. Hāʻawi ʻo ACRN i ka liʻiliʻi o luna, e hōʻoiaʻiʻo i ka latency haʻahaʻa a me ka pane kūpono i ka wā e launa pū ai me nā mea hana. Kākoʻo i ka virtualization o nā kumuwaiwai CPU, I/O, subsystem pūnaewele, nā kiʻi a me nā hana kani. Hiki ke hoʻohana ʻia ka ACRN no ka holo ʻana i nā mīkini virtual kaʻawale i nā ʻāpana mana uila, nā panela mea kani, nā ʻōnaehana ʻike automotive, nā mea hoʻohana IoT a me nā ʻenehana i hoʻopili ʻia. Kākoʻo ʻo ACRN i ʻelua ʻano o nā ʻōnaehana malihini - nā VM lawelawe pono, i hoʻohana ʻia no ka mālama ʻana i nā kumuwaiwai ʻōnaehana (CPU, hoʻomanaʻo, I/O, a me nā mea ʻē aʻe), a me nā VM Mea hoʻohana maʻamau, hiki ke holo i nā hoʻohele Linux, Android a me Windows.
    • I loko o ka subsystem IMA (Integrity Measurement Architecture), e mālama ana i kahi waihona hash no ka nānā ʻana i ka pono o nā faila a me nā metadata pili, hiki i kēia manawa ke nānā i ka pono o ka ʻikepili o ka kernel ponoʻī, no ka laʻana, e nānā i nā loli i nā lula SELinux .
    • Ua hoʻohui ʻia ka hiki ke hoʻopaʻa i nā hypercalls Xen a hoʻouna iā lākou i ka emulator e holo ana ma kahi mea hoʻohana i ka hypervisor KVM.
    • Hoʻohui i ka hiki ke hoʻohana iā Linux ma ke ʻano he kumu kumu no ka Hyper-V hypervisor. Loaʻa i ke kumu kumu ke komo pololei i ka lako a hoʻohana ʻia e holo i nā ʻōnaehana malihini (e like me Dom0 ma Xen). A hiki i kēia manawa, kākoʻo ʻo Hyper-V (Microsoft Hypervisor) iā Linux ma nā wahi malihini kipa wale nō, akā ua hoʻomalu ʻia ka hypervisor ponoʻī mai kahi ʻōnaehana Windows.
    • Hoʻohui i ke kākoʻo no ka hoʻopunipuni inline no nā kāleka eMMC, e ʻae iā ʻoe e hoʻohana i nā mīkini hoʻopunipuni i kūkulu ʻia i loko o ka mea hoʻokele kaʻa e hoʻopunipuni a wehe i ka I/O.
    • ʻO ke kākoʻo no ka RIPE-MD 128/256/320 a me Tiger 128/160/192 hashes, ʻaʻole i hoʻohana ʻia i ke kumu, a me ka Salsa20 stream cipher, i pani ʻia e ka ChaCha20 algorithm, ua wehe ʻia mai ka crypto subsystem. Ua hōʻano hou ʻia ka algorithm blake2 e hoʻokō i nā blake2s.
  • Pūnaehana pūnaewele
    • Hoʻohui i ka hiki ke hoʻoneʻe i ka mea hoʻokele koho balota NAPI no nā ʻenehana pūnaewele i kahi kaula kernel ʻokoʻa, e hiki ai ke hoʻomaikaʻi i ka hana no kekahi mau ʻano hana. Ma mua, ua hana ʻia ke koho balota ma ka pōʻaiapili o softirq a ʻaʻole i uhi ʻia e ka mea hoʻonohonoho hana, kahi i paʻakikī ai ka hoʻokō ʻana i nā optimizations maikaʻi e hoʻokō i ka hana kiʻekiʻe. ʻO ka hoʻokō ʻana i kahi kaula kernel ʻokoʻa e hiki ai ke nānā ʻia ka luna koho balota mai kahi o ka mea hoʻohana, hoʻopili ʻia i nā cores CPU pākahi, a mālama ʻia i ka wā e hoʻonohonoho ai i ka hoʻololi hana. No ka hoʻohana ʻana i ke ʻano hou i nā sysfs, ua hoʻoholo ʻia ka /sys/class/net/ parameter /uila.
    • Hoʻohui i loko o ke kumu o MPTCP (MultiPath TCP), kahi hoʻonui o ka protocol TCP no ka hoʻonohonoho ʻana i ka hana o kahi pilina TCP me ka hāʻawi ʻana i nā paʻi i ka manawa like ma kekahi mau ala ma o nā kikowaena pūnaewele like ʻole e pili ana i nā helu IP like ʻole. Hoʻohui ka hoʻokuʻu hou i ka hiki ke hāʻawi i ka mea nui i kekahi mau kaula, kahi e hiki ai, no ka laʻana, ke hoʻonohonoho i ka hana o nā pae hoʻihoʻi e huli wale inā he pilikia me ka pae mua.
    • Hoʻohui ʻo IGMPv3 i ke kākoʻo no ka mīkini EHT (Explicit Host Tracking).
    • Hāʻawi ka ʻenekini kānana packet o Netfilter i ka hiki ke loaʻa i kekahi mau papa no ka loaʻa ʻana o ka mana kūʻokoʻa (no ka laʻana, hiki i kahi kaʻina hana pale ahi ke lawe i kekahi mau papa, e pale ana i kekahi mai ke keʻakeʻa ʻana iā lākou).
  • Kākoʻo
    • Ua hoʻomaʻemaʻe mākou i nā paepae ARM kahiko a mālama ʻole ʻia. Ua wehe ʻia ke code no nā efm32, picoxcell, prima2, tango, u300, zx a me c6x, a me nā mea hoʻokele pili.
    • Hāʻawi ka mea hoʻokele amdgpu i ka hiki ke overclock (OverDrive) kāleka e pili ana i ka Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx). Hoʻohui kākoʻo no ka format FP16 pixel no DCE (display controller engine) mai ka hanauna 8 a hiki i ka 11. No ka GPU Navy Flounder (Navi 21) a me APU Van Gogh, ua hoʻokō ʻia ka hiki ke hoʻonohonoho hou i ka GPU.
    • Hoʻohana ka mea hoʻokele i915 no nā kāleka kiʻi kiʻi Intel i ka ʻāpana i915.mitigations no ka hoʻopau ʻana i nā hana kaʻawale a me ka pale no ka hoʻomaikaʻi ʻana i ka hana. No nā chips e hoʻomaka ana mai Tiger Lake, ua hoʻokomo ʻia ke kākoʻo no ka VRR (Variable Rate Refresh), kahi e hiki ai iā ʻoe ke hoʻololi i ka monitor refresh rate e hōʻoia i ka maʻalahi a ʻaʻohe āpau i ka wā o nā pāʻani. Hoʻokomo ʻia ke kākoʻo no ka ʻenehana Intel Clear Color no ka hoʻomaikaʻi ʻana i ka pololei kala. Hoʻohui ʻia ke kākoʻo no DP-HDMI 2.1. Ua hoʻokō ʻia ka hiki ke hoʻomalu i ka backlight o nā panels eDP. No Gen9 GPU me ke kākoʻo LSPCON (Level Shifter and Protocol Converter), hiki ke kākoʻo HDR.
    • Hoʻohui ka mea hoʻokele nouveau i ke kākoʻo mua no NVIDIA GPU e pili ana i ka hoʻolālā GA100 (Ampere).
    • Hoʻohui ka mea hoʻokele msm i ke kākoʻo no Adreno 508, 509 a me 512 GPU i hoʻohana ʻia ma SDM (Snapdragon) 630, 636 a me 660 chips.
    • Kākoʻo i hoʻohui ʻia no Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s a me nā kāleka kani Pioneer DJM-750. Hoʻohui ʻia ke kākoʻo no Intel Alder Lake PCH-P leo subsystem. Ua hoʻokō ʻia ke kākoʻo no ka hoʻohālikelike polokalamu o ka hoʻopili ʻana a me ka wehe ʻana i kahi mea hoʻohui leo no ka hoʻopau ʻana i nā mea hoʻohana ma kahi o ka mea hoʻohana.
    • Hoʻohui ʻia ke kākoʻo no nā ʻoliʻoli pāʻani Nintendo 64 i hana ʻia mai 1996 a 2003 (ʻaʻole i hoʻopau ʻia nā hoʻāʻo ʻana e hoʻopaʻa i Linux i ka Nintendo 64 a ua helu ʻia ʻo Vaporware). ʻO ke kumu no ka hana ʻana i kahi awa hou no kahi kahua kahiko, ʻaʻole i hoʻokuʻu ʻia no ka aneane iwakālua makahiki, ʻo ia ka makemake e hoʻoulu i ka hoʻomohala ʻana o nā emulators a maʻalahi i ka lawe ʻana i nā pāʻani.
    • Hoʻohui ʻia ka mea hoʻokele no Sony PlayStation 5 DualSense game controller.
    • Hoʻohui kākoʻo no nā papa ARM, nā mea hana a me nā paepae: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, ʻElua Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Hoʻohui kākoʻo no Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 smartphones.
    • Hoʻohui ʻia ka mea hoʻokele bcm-vk no nā papa accelerator Broadcom VK (no ka laʻana, Valkyrie a me Viper PCIe papa), hiki ke hoʻohana ʻia no ka hoʻoiho ʻana i nā hana hoʻoili leo, wikiō a me nā kiʻi, a me nā hana e pili ana i ka encryption, i kahi mea ʻokoʻa.
    • Hoʻohui i ke kākoʻo no ka Lenovo IdeaPad platform me ka hiki ke hoʻomalu i ka hoʻouka mau ʻana a me ka backlighting keyboard. Hāʻawi pū ʻia ke kākoʻo no ka ʻaoʻao ACPI o ka ThinkPad platform me ka hiki ke hoʻomalu i nā ʻano hoʻohana mana. Hoʻohui ʻia ka mea hoʻokele no Lenovo ThinkPad X1 Tablet Gen 2 HID subsystem.
    • Hoʻohui ʻia ka mea hoʻokele ov5647 me ke kākoʻo no ka module kamera no Raspberry Pi.
    • Hoʻohui kākoʻo no RISC-V SoC FU740 a me HiFive Unleashed papa. Ua hoʻohui pū ʻia kahi mea hoʻokele hou no ka chip Kendryte K210.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka