Linux 5.14 faʻamalolo kernel

Ina ua maeʻa le lua masina o atinaʻe, na tuʻuina atu ai e Linus Torvalds le faʻamalolo o le Linux kernel 5.14. Faatasi ai ma suiga e sili ona iloga: fou quotactl_fd() ma memfd_secret() valaau faiga, aveesea o le ide ma avetaavale mata, fou I/O pule faamuamua mo cgroup, SCHED_CORE faiga faatulagaina o galuega, atinae mo le fatuina o utaina polokalame BPF faamaonia.

O le lomiga fou e aofia ai le 15883 faʻaleleia mai le 2002 developers, o le patch tele o le 69 MB (o suiga na aʻafia ai 12580 faila, 861501 laina o code na faʻaopoopoina, 321654 laina na tapeina). E tusa ma le 47% o suiga uma na faʻaalia i le 5.14 e fesoʻotaʻi ma taʻavale masini, e tusa ma le 14% o suiga e fesoʻotaʻi ma le faʻafouina o tulafono faʻapitoa i fausaga faʻapitoa, 13% e fesoʻotaʻi ma le upega o fesoʻotaʻiga, 3% e fesoʻotaʻi ma faila faila, ma 3% e feso'ota'i i totonu ole kernel subsystems.

Autu fa'afouga:

  • Disk subsystem, I/O ma faila faiga
    • O se fa'atonuga fa'amuamua I/O ua fa'atinoina mo cgroups, rq-qos, lea e mafai ona fa'atonutonuina le fa'agaoioiga o le fa'amuamua o talosaga e poloka ai masini na gaosia e sui o vaega ta'itasi. O le lagolago fou e pulea le faamuamua ua faaopoopo i le mq-gata o le I/O scheduler.
    • O le ext4 file system o loʻo faʻaaogaina se poloaiga ioctl fou, EXT4_IOC_CHECKPOINT, lea e faʻamalosia ai fefaʻatauaiga uma o loʻo faʻatali mai le tusi talaaga ma a latou paʻu e fesoʻotaʻi e faʻafefe i le tisiki, ma faʻapipiʻi ai foi le vaega o loʻo faʻaaogaina e le tusi talaaga i le teuina. O le suiga na saunia o se vaega o se taumafaiga e puipuia ai faʻamatalaga liki mai faiga faila.
    • Fa'atonuga fa'atinoga ua faia i Btrfs: e ala i le fa'aumatiaina o le fa'amauina e le mana'omia o uiga fa'alautele i le taimi o le fsync fa'atinoina, o le fa'atinoga o fa'agaioiga malosi fa'atasi ai ma uiga fa'alautele ua si'itia i luga i le 17%. E le gata i lea, pe a faʻatinoina galuega faʻapipiʻi e le afaina ai le lautele, e le atoatoa le faʻamaopoopoina, lea na faʻaitiitia ai le taimi o le taotoga e 12%. Ua faaopoopo se seti i sysfs e faatapulaa ai le bandwidth I/O pe a siaki le FS. Fa'aopoopo iioctl telefoni e fa'aleaogaina le toe fa'atupuina ma le tapeina o gaioiga o masini.
    • I le XFS, o le faʻatinoga o le faʻapipiʻi faʻapipiʻi ua toe faʻatulagaina, lea ua suia i le tuʻufaʻatasia o itulau manatua i le faiga faʻaputuga. Fa'aleleia le fa'aogaina o le cache.
    • F2FS fa'aopoopoina se filifiliga e fa'agaoioi i le faitau-na'o le fa'aoga ma fa'atino se faiga fa'apipi'i poloka poloka (compress_cache) e fa'aleleia ai le faitau fa'atino. Ua fa'atinoina le lagolago mo le fa'apipi'iina o faila fa'afanua i le manatua e fa'aaoga ai le fa'agaioia mmap(). Ina ia faʻamalo faʻamalo le faʻapipiʻiina o faila e faʻavae i luga o se ufimata, ua tuʻuina atu se filifiliga fou o le nocompress.
    • Ua mae'a galuega i le aveta'avale exFAT e fa'aleleia atili le feso'ota'iga ma nisi mea e teu ai meapueata.
    • Faʻaopoopo le quotactl_fd() system call, lea e mafai ai ona e pulea quota e le ala i se faila masini faʻapitoa, ae ala i le faʻamalamalamaina o se faila faila e fesoʻotaʻi ma le faila faila lea e faʻaogaina ai le quota.
    • O avetaʻavale tuai mo masini poloka ma le IDE interface ua aveese mai le fatu; ua leva ona suia e le libata subsystem.
    • O le aveta'avale "raw" ua aveese mai le fatu, ua maua ai le avanoa e le fa'asalaina e poloka ai masini e ala i le /dev/raw interface. O lenei gaioiga ua leva ona faʻatinoina i talosaga e faʻaaoga ai le fuʻa O_DIRECT.
  • Auaunaga manatua ma faiga
    • O le fa'atulagaina o galuega e fa'atino se faiga fa'atulagaina fou, SCHED_CORE, lea e mafai ai ona e pulea po'o fea fa'agasologa e mafai ona fa'atino fa'atasi i luga o le CPU e tasi. E mafai ona tu'uina atu i faiga ta'itasi se fa'amatalaga kuki e fa'amatala ai le lautele o le fa'atuatuaga i le va o faiga (mo se fa'ata'ita'iga, o le tagata lava e tasi po'o le koneteina). Pe a faʻatulagaina le faʻatinoina o tulafono, e mafai e le tagata faʻatulagaina ona faʻamautinoa e tasi le CPU autu e faʻasoa i na o faiga e fesoʻotaʻi ma le tagata lava e tasi, lea e mafai ona faʻaogaina e poloka ai nisi osofaʻiga Specter e ala i le puipuia o galuega faʻalagolago ma le faʻatuatuaina mai le faʻaogaina i luga ole SMT (Hyper Threading) filo. .
    • Mo le cgroup, ua faʻatinoina le lagolago mo le fasioti tagata, lea e mafai ai ona e faʻaumatia faiga uma e fesoʻotaʻi ma le vaega i le taimi e tasi (auina atu SIGKILL) e ala i le tusiaina o le "1" i le faila faila cgroup.kill.
    • Faʻateleina le gafatia e fesoʻotaʻi ma le tali atu i le mauaina o loka vaeluaga ("loka vaeluaga") e tupu pe a maua faʻamatalaga e le faʻaogaina i le mafaufau ona o le mea moni pe a faʻatinoina se faʻatonuga atomic, o faʻamaumauga e sopoia laina e lua o le CPU. O ia poloka e taʻitaʻia ai se paʻu tele i le faʻatinoga, o lea na mafai ai ona faʻamutaina faʻamalosi le talosaga na mafua ai le poloka. O le faʻasalalauga fou e faʻaopoopoina ai se faʻasologa o laina o le kernel "split_lock_detect = ratelimit: N", lea e mafai ai ona e faʻamalamalamaina se tapulaa lautele i luga o le fua o le lokaina o gaioiga i le sekone, pe a uma ona sili atu soʻo se faagasologa ua avea ma puna o se loka vaelua. o le a faamalosia e taofi mo le 20 ms nai lo le faamutaina.
    • O le cgroup bandwidth controller CFS (CFS bandwidth controller), lea e fuafua ai pe fia le tele o le faagasologa o le taimi e mafai ona tuʻuina atu i vaega taʻitasi, e faʻaaogaina le tomai e faʻamalamalamaina ai taimi faʻatapulaʻa, lea e mafai ai ona sili atu le faʻatonutonuina o le faʻaogaina o galuega mamafa. Mo se fa'ata'ita'iga, seti cpu.cfs_quota_us i le 50000 ma cpu.cfs_period_us i le 100000 o le a fa'ataga ai se vaega o faiga e fa'ama'imau le 100ms ole CPU taimi ile 50ms.
    • Fa'aopoopoina ulua'i atina'e mo le fa'atūina o uta polokalame a le BPF, lea o le a fa'ataga ai le utaina o na'o polokalame BPF ua sainia ma se ki fa'akomepiuta fa'alagolago.
    • Fa'aopoopoina le futex fou FUTEX_LOCK_PI2, lea e fa'aogaina ai le taimi e fa'atatau i le taimi e fa'aalu ai le taimi e fa'aalu e le faiga i le moe.
    • Mo le fausaga RISC-V, lagolago mo itulau manatua tetele (Transparent Huge-Pages) ma le mafai ona faʻaogaina le KFENCE masini e iloa ai mea sese pe a galue ma manatua e faʻatinoina.
    • O le madvise () system call, lea e maua ai se auala e faʻamalieina ai le puleaina o mafaufauga, ua faʻaopoopoina le MADV_POPULATE_READ ma MADV_POPULATE_WRITE fuʻa e faʻatupu ai se "itulau sese" i luga o itulau manatua uma ua faʻafanua e faitau pe tusitusi gaioiga, e aunoa ma le faia o se faitau pe tusitusi moni. (muamua). O le faʻaogaina o fuʻa e mafai ona aoga mo le faʻaitiitia o le tuai i le faʻatinoina o le polokalame, ona o le faʻatinoina o le faʻatinoina o le "itulau sese" faʻatautaia mo itulau uma e leʻi faʻaogaina i le taimi e tasi, e aunoa ma le faʻatali mo le avanoa moni ia i latou.
    • Ua fa'aopoopoina e le masini su'esu'e iunite le lagolago mo su'ega fa'atino i le si'osi'omaga QEMU.
    • Ua fa'aopoopoina ni su'esu'ega fou: "osnoise" e siaki ai le tuai o talosaga e mafua mai i le fa'alavelave fa'alavelave, ma le "timerlat" e fa'aalia ai fa'amatalaga au'ili'ili e uiga i le tuai pe a ala mai se fa'ailoga taimi.
  • Virtualization ma le Puipuiga
    • O le memfd_secret() system call ua fa'aopoopoina e fatu ai se nofoaga e manatua ai i totonu o se avanoa tu'ufua, e na'o le faiga o le umiaina, e le o fa'aalia i isi faiga, ma e le mafai ona maua sa'o i le fatu.
    • I le seccomp system call filtering system, pe a fa'agaoioi le poloka poloka i avanoa e fa'aoga ai, e mafai ona fa'aogaina se ta'aloga atomika e tasi e fatu ai se fa'amatalaga faila mo se galuega tu'ufua ma toe fa'afo'i pe a fa'agasolo se telefoni. O le gaioiga fuafuaina e foia ai le faʻalavelave o le faʻalavelaveina o se tagata e faʻaaogaina avanoa faʻaoga pe a oʻo mai se faailo.
    • Fa'aopoopoina se faiga fou mo le fa'atonutonuina o tapula'a o puna'oa i totonu ole igoa ole igoa ole fa'aoga, lea e fusifusia ai fa'amaufa'ailoga ta'ito'atasi i se tagata fa'aoga ile "user namespace". O le suiga e foia ai le faʻafitauli i le faʻaogaina o faʻamaumauga masani o punaoa pe a faʻatautaia e se tasi tagata faʻaoga i totonu o pusa eseese.
    • O le KVM hypervisor mo ARM64 faiga ua faʻaopoopoina le mafai ona faʻaogaina le MTE (MemTag, Memory Tagging Extension) faʻaopoopoga i faiga faʻapitoa, lea e mafai ai e oe ona fusifusia pine i faʻasologa o manatuaga taʻitasi ma faʻatulaga le siakiina o le faʻaoga saʻo o faʻailoga e poloka ai le faʻaogaina o fa'aletonu e mafua mai i le fa'aogaina o poloka manatua ua uma ona fa'asaolotoina, fa'amama fa'amama, avanoa a'o le'i amataina ma fa'aoga i fafo atu o le tulaga o iai nei.
    • O le ARM64 platform's Pointer Authentication facilities e mafai nei ona fa'atulaga eseese mo le fatu ma le avanoa fa'aoga. O le tekonolosi e mafai ai ona e fa'aogaina fa'atonuga fa'apitoa ARM64 e fa'amaonia ai tuatusi toe fa'afo'i e fa'aaoga ai saini fa'atekinolosi o lo'o teuina i vaega pito i luga e le'i fa'aaogaina o le fa'ailoga lava ia.
    • O le fa'aoga-mode Linux ua fa'aopoopoina le lagolago mo le fa'aogaina o ta'avale mo masini PCI ma se pasi PCI fa'akomepiuta, fa'atinoina e le aveta'avale PCI-over-virtio.
    • Mo faiga x86, faʻaopoopo le lagolago mo le virtio-iommu paravirtualized masini, faʻatagaina IOMMU talosaga e pei ole ATTACH, DETACH, MAP ma UNMAP e lafo i luga o le virtio felauaiga e aunoa ma le faʻataʻitaʻiina o laulau itulau manatua.
    • Mo Intel CPUs, mai le Skylake aiga i Coffee Lake, o le faʻaogaina o le Intel TSX (Transactional Synchronization Extensions), lea e tuʻuina atu meafaigaluega mo le faʻaleleia o le faʻatinoina o le tele-threaded talosaga e ala i le faʻaaogaina o le faʻaogaina o le faʻaogaina o gaioiga, e le mafai ona faʻaogaina. O faʻaopoopoga e le atoatoa ona o le ono mafai ona osofaʻia e Zombieload e faʻaogaina ai faʻamatalaga faʻamatalaga e ala i auala lona tolu e tupu i le taimi o le faʻaogaina o le TAA (TSX Asynchronous Abort) masini.
  • Su'ega feso'ota'iga
    • Faʻatasi i totonu ole MPTCP (MultiPath TCP), o se faʻaopoopoga o le TCP protocol mo le faʻatulagaina o le faʻaogaina o se TCP fesoʻotaʻiga ma le tuʻuina atu o pusa i le taimi e tasi i luga o le tele o auala e ala i fesoʻotaʻiga fesoʻotaʻiga eseese e fesoʻotaʻi ma tuatusi IP eseese. O le faʻasalalauga fou e faʻaopoopoina ai se faiga mo le faʻatulagaina o au lava faiga faʻavae o fefaʻatauaiga mo le IPv4 ma le IPv6 (faiga faʻavae faʻapipiʻi tele), e mafai ai ona iloa mai avanoa faʻaoga po o fea fanua i totonu o afifi, e aofia ai ma faʻapipiʻi, o le a faʻaaogaina pe a faʻatatau le hash e fuafua ai le filifiliga o le ala mo le afifi .
    • Lagolago mo SOCK_SEQPACKET sockets (fa'atonu ma fa'atuatuaina le tu'uina atu o fa'amaumauga) ua fa'aopoopoina i le virtio virtual transport.
    • O le gafatia o le SO_REUSEPORT socket mechanism ua faʻalauteleina, lea e mafai ai e le tele o faʻalogo faʻalogo ona faʻafesoʻotaʻi i le tasi taulaga i le taimi e tasi e maua ai fesoʻotaʻiga ma le tufatufaina atu o talosaga o loʻo oʻo mai i le taimi e tasi i sockets uma e fesoʻotaʻi atu i le SO_REUSEPORT, lea e faafaigofieina ai le fausiaina o talosaga a le tele o filo. . O le lomiga fou e faʻaopoopoina meafaigaluega mo le fesiitaiga o le pule i se isi socket pe a faʻaletonu pe a faʻagasolo se talosaga e le socket muamua filifilia (foia le faʻafitauli i le leiloa o soʻotaga taʻitoʻatasi pe a toe amataina auaunaga).
  • Meafaigaluega
    • O le avetaʻavale amdgpu e tuʻuina atu le lagolago mo le AMD Radeon RX 6000 fou faʻasologa o GPU, faʻailoga "Beige Goby" (Navi 24) ma le "Yellow Carp", faʻapea foʻi ma le faʻaleleia atili o le lagolago mo le Aldebaran GPU (gfx90a) ma Van Gogh APU. Faʻaopoopoina le gafatia e galulue faʻatasi ma le tele o paneta eDP. Mo APU Renoir, ua fa'atinoina le lagolago mo le galulue fa'atasi ma fa'ailoga fa'ailoga i totonu o le vitiō (TMZ, Trusted Memory Zone). Fa'aopoopoina le lagolago mo kata fa'ailoga vevela. Mo Radeon RX 6000 (Navi 2x) GPUs ma AMD GPU matutua, ASPM (Active State Power Management) lagolago e mafai ona le mafai, lea na mafai muamua mo Navi 1x, Vega ma Polaris GPU.
    • Mo tupe meataalo AMD, o le lagolago mo fefaʻasoaaʻi mafaufauga faʻapitoa (SVM, fefaʻasoaaʻi mafaufauga faʻapitoa) ua faʻaopoopoina e faʻavae i luga o le HMM (Heterogeneous memory management) subsystem, lea e faʻatagaina ai le faʻaogaina o masini ma a latou lava iunite faʻamanatuga (MMU, iunite faʻamanatuga), lea e mafai ona maua manatua autu. Aemaise lava, i le faʻaaogaina o le HMM, e mafai ona e faʻatulagaina se avanoa faʻasoa avanoa i le va o le GPU ma le PPU, lea e mafai ai e le GPU ona maua le manatuaga autu o le faagasologa.
    • Fa'aopoopoina le lagolago muamua mo le AMD Smart Shift technology, lea e suia malosi ai le CPU ma le GPU fa'aogaina o le mana i luga o le komipiuta ma le AMD chipset ma le kata fa'ata'ita'i e fa'aleleia ai le fa'atinoga mo ta'aloga, fa'ata'ita'iga vitiō, ma fa'aliliuga 3D.
    • O le avetaavale i915 mo kata faʻataʻitaʻi Intel e aofia ai le lagolago mo Intel Alderlake P chips.
    • Fa'aopoopo le drm/hyperv aveta'avale mo Hyper-V fa'ata'ita'iga ata fa'atusa.
    • Faʻaopoopo le lagolago mo le Raspberry Pi 400 all-in-one computer.
    • Fa'aopoopo le aveta'avale dell-wmi-privacy e lagolago ai mea pu'e pu'e ma masini faaleotele leo o lo'o iai ile Dell laptops.
    • Mo Lenovo komipiuta, ua faʻaopoopoina le WMI interface mo le suia o tulaga BIOS e ala i sysfs /sys/class/firmware-attributes/.
    • Fa'alauteleina le lagolago mo masini e iai le USB4 fa'aoga.
    • Faaopoopo le lagolago mo AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ma Texas Instruments TAS2505 kata leo ma codecs. Siitia le lagolago leo i HP ma ASUS komepiuta feaveai. Fa'aopoopo patches e fa'aitiitia ai fa'atuai a'o le'i amata ta'alo leo i masini USB.

puna: opennet.ru

Faaopoopo i ai se faamatalaga