Rhyddhau cnewyllyn Linux 5.14

Ar ôl dau fis o ddatblygiad, cyflwynodd Linus Torvalds ryddhad cnewyllyn Linux 5.14. Ymhlith y newidiadau mwyaf nodedig: galwadau system quotactl_fd () a memfd_secret () newydd, cael gwared ar yrwyr ide a amrwd, rheolydd blaenoriaeth I / O newydd ar gyfer cgroup, modd amserlennu tasg SCHED_CORE, seilwaith ar gyfer creu llwythwyr rhaglen BPF wedi'u dilysu.

Mae'r fersiwn newydd yn cynnwys 15883 o atgyweiriadau gan 2002 o ddatblygwyr, maint y clwt yw 69 MB (effeithiwyd ar y newidiadau ar 12580 o ffeiliau, ychwanegwyd 861501 o linellau cod, dilëwyd 321654 o linellau). Mae tua 47% o'r holl newidiadau a gyflwynwyd yn 5.14 yn gysylltiedig â gyrwyr dyfais, mae tua 14% o'r newidiadau yn ymwneud â diweddaru cod sy'n benodol i bensaernïaeth caledwedd, mae 13% yn gysylltiedig â'r pentwr rhwydweithio, mae 3% yn gysylltiedig â systemau ffeiliau, a 3% yn gysylltiedig ag is-systemau cnewyllyn mewnol.

Prif arloesiadau:

  • Is-system ddisg, systemau I/O a ffeiliau
    • Mae rheolydd blaenoriaethu I/O newydd wedi'i weithredu ar gyfer cgroups, rq-qos, a all reoli blaenoriaeth prosesu ceisiadau i rwystro dyfeisiau a gynhyrchir gan aelodau o bob cgroup. Mae cefnogaeth rheolwr blaenoriaeth newydd wedi'i hychwanegu at yr amserlen I/O mq-dyddiad cau.
    • Mae'r system ffeiliau ext4 yn gweithredu gorchymyn ioctl newydd, EXT4_IOC_CHECKPOINT, sy'n gorfodi'r holl drafodion arfaethedig o'r dyddlyfr a'u byfferau cysylltiedig i gael eu fflysio i ddisg, ac mae hefyd yn trosysgrifo'r ardal a ddefnyddir gan y cyfnodolyn wrth storio. Paratowyd y newid fel rhan o fenter i atal gollyngiadau gwybodaeth o systemau ffeiliau.
    • Mae optimeiddio perfformiad wedi'i wneud i Btrfs: trwy ddileu logio priodoleddau estynedig yn ddiangen yn ystod gweithrediad fsync, mae perfformiad gweithrediadau dwys gyda phriodoleddau estynedig wedi cynyddu hyd at 17%. Yn ogystal, wrth berfformio gweithrediadau trim nad ydynt yn effeithio ar faint, mae cydamseriad llawn yn anabl, a gostyngodd yr amser gweithredu 12%. Mae gosodiad wedi'i ychwanegu at sysfs i gyfyngu ar lled band I/O wrth wirio'r FS. Ychwanegwyd galwadau ioctl i ganslo gweithrediadau newid maint a dileu dyfais.
    • Yn XFS, mae gweithrediad y storfa byffer wedi'i ailgynllunio, sydd wedi'i newid i ddyrannu tudalennau cof yn y modd swp. Gwell effeithlonrwydd cache.
    • Mae F2FS yn ychwanegu opsiwn i weithredu yn y modd darllen yn unig ac yn gweithredu modd storfa bloc cywasgedig (compress_cache) i wella perfformiad darllen ar hap. Rhoddwyd cymorth ar gyfer cywasgu ffeiliau sydd wedi'u mapio i'r cof gan ddefnyddio gweithrediad mmap(). Er mwyn analluogi cywasgu ffeiliau yn ddetholus yn seiliedig ar fwgwd, mae opsiwn mowntio newydd nocompress wedi'i gynnig.
    • Mae gwaith wedi'i wneud yn y gyrrwr exFAT i wella cydnawsedd â rhywfaint o storfa camera digidol.
    • Ychwanegwyd yr alwad system quotactl_fd(), sy'n eich galluogi i reoli cwotâu nid trwy ffeil dyfais arbennig, ond trwy nodi disgrifydd ffeil sy'n gysylltiedig â'r system ffeiliau y cymhwysir y cwota ar ei chyfer.
    • Mae'r hen yrwyr ar gyfer dyfeisiau bloc gyda'r rhyngwyneb IDE wedi'u tynnu o'r cnewyllyn; maent wedi cael eu disodli ers amser maith gan yr is-system libata.
    • Mae'r gyrrwr "amrwd" wedi'i dynnu o'r cnewyllyn, gan ddarparu mynediad heb ei glustogi i ddyfeisiau bloc trwy'r rhyngwyneb /dev/raw. Mae'r swyddogaeth hon wedi'i gweithredu ers tro mewn rhaglenni sy'n defnyddio'r faner O_DIRECT.
  • Gwasanaethau cof a system
    • Mae'r trefnydd tasgau yn gweithredu modd amserlennu newydd, SCHED_CORE, sy'n eich galluogi i reoli pa brosesau y gellir eu gweithredu gyda'i gilydd ar yr un craidd CPU. Gellir neilltuo dynodwr cwci i bob proses sy'n diffinio cwmpas yr ymddiriedaeth rhwng prosesau (er enghraifft, perthyn i'r un defnyddiwr neu gynhwysydd). Wrth drefnu gweithredu cod, gall y trefnydd sicrhau bod un craidd CPU yn cael ei rannu rhwng prosesau sy'n gysylltiedig â'r un perchennog yn unig, y gellir eu defnyddio i rwystro rhai ymosodiadau Specter trwy atal tasgau dibynadwy ac anymddiriedol rhag rhedeg ar yr un edefyn UDRh (Hyper Threading). .
    • Ar gyfer cgroup, mae cefnogaeth ar gyfer y gweithrediad lladd wedi'i roi ar waith, sy'n eich galluogi i ladd yr holl brosesau sy'n gysylltiedig â'r grŵp ar unwaith (anfon SIGKILL) trwy ysgrifennu “1” i'r ffeil rithwir cgroup.kill.
    • Galluoedd estynedig sy'n ymwneud ag ymateb i ganfod cloeon hollt (“cloeon hollti”) sy'n digwydd wrth gyrchu data heb ei alinio yn y cof oherwydd y ffaith bod y data, wrth weithredu cyfarwyddyd atomig, yn croesi dwy linell storfa CPU. Mae blocio o'r fath yn arwain at ostyngiad sylweddol mewn perfformiad, felly yn flaenorol roedd yn bosibl terfynu'r cais a achosodd y blocio yn rymus. Mae'r datganiad newydd yn ychwanegu paramedr llinell orchymyn cnewyllyn “split_lock_detect=ratelimit: N”, sy'n eich galluogi i ddiffinio terfyn system gyfan ar gyfradd y gweithrediadau cloi yr eiliad, ar ôl mynd y tu hwnt i unrhyw broses sydd wedi dod yn ffynhonnell clo hollt yn cael eu gorfodi i stopio am 20 ms yn lle terfynu.
    • Mae rheolydd lled band cgroup CFS (rheolwr lled band CFS), sy'n pennu faint o amser prosesydd y gellir ei ddyrannu i bob cgroup, yn gweithredu'r gallu i ddiffinio terfynau amser cyfyngedig, sy'n caniatáu ar gyfer rheoleiddio llwythi gwaith sy'n sensitif i hwyrni yn well. Er enghraifft, bydd gosod cpu.cfs_quota_us i 50000 a cpu.cfs_period_us i 100000 yn caniatáu i grŵp o brosesau wastraffu 100ms o amser CPU bob 50ms.
    • Ychwanegwyd seilwaith cychwynnol ar gyfer creu llwythwyr rhaglenni BPF, a fydd yn caniatáu ymhellach i lwytho dim ond rhaglenni BPF wedi'u llofnodi ag allwedd ddigidol y gellir ymddiried ynddi.
    • Ychwanegwyd gweithrediad futex newydd FUTEX_LOCK_PI2, sy'n defnyddio amserydd monotonig i gyfrifo terfyn amser sy'n cymryd i ystyriaeth yr amser a dreulir gan y system yn y modd cysgu.
    • Ar gyfer pensaernïaeth RISC-V, gweithredir cefnogaeth ar gyfer tudalennau cof mawr (Tudalennau Anferth Tryloyw) a'r gallu i ddefnyddio'r mecanwaith KFENCE i ganfod gwallau wrth weithio gyda chof.
    • Mae'r alwad system madvise(), sy'n darparu modd i optimeiddio rheolaeth cof proses, wedi ychwanegu'r baneri MADV_POPULATE_READ a MADV_POPULATE_WRITE i gynhyrchu "bai tudalen" ar bob tudalen cof sydd wedi'i mapio i ddarllen neu ysgrifennu gweithrediadau, heb berfformio darllen neu ysgrifennu gwirioneddol (rhagosodedig). Gall defnyddio fflagiau fod yn ddefnyddiol ar gyfer lleihau oedi wrth gyflawni'r rhaglen, oherwydd bod y sawl sy'n delio â “bai tudalen” yn cael ei weithredu'n rhagweithiol ar gyfer pob tudalen heb ei ddyrannu ar unwaith, heb aros am y mynediad gwirioneddol iddynt.
    • Mae'r system brofi uned kunit wedi ychwanegu cefnogaeth ar gyfer cynnal profion yn amgylchedd QEMU.
    • Mae olrheinwyr newydd wedi'u hychwanegu: "osnoise" i olrhain oedi wrth wneud cais a achosir gan drin ymyrraeth, ac "timerlat" i arddangos gwybodaeth fanwl am oedi wrth ddeffro o signal amserydd.
  • Rhithwiroli a Diogelwch
    • Mae'r alwad system memfd_secret() wedi'i hychwanegu i greu man cof preifat mewn gofod cyfeiriad ynysig, sy'n weladwy i'r broses berchen yn unig, heb ei adlewyrchu i brosesau eraill, ac nad yw'n hygyrch yn uniongyrchol i'r cnewyllyn.
    • Yn y system hidlo galwadau system seccomp, wrth symud trinwyr blocio i ofod defnyddwyr, mae'n bosibl defnyddio gweithrediad atomig sengl i greu disgrifydd ffeil ar gyfer tasg ynysig a'i ddychwelyd wrth brosesu galwad system. Mae'r gweithrediad arfaethedig yn datrys y broblem o dorri ar draws triniwr yn y gofod defnyddiwr pan fydd signal yn cyrraedd.
    • Ychwanegwyd mecanwaith newydd ar gyfer rheoli terfynau adnoddau yn y gofod enw ID defnyddiwr, sy'n clymu rhifyddion terfyn unigol i ddefnyddiwr yn y "gofod enw defnyddiwr". Mae'r newid yn datrys y broblem gyda'r defnydd o gownteri adnoddau cyffredin pan fydd un defnyddiwr yn rhedeg prosesau mewn gwahanol gynwysyddion.
    • Mae'r hypervisor KVM ar gyfer systemau ARM64 wedi ychwanegu'r gallu i ddefnyddio'r estyniad MTE (MemTag, Memory Taggging Extension) mewn systemau gwesteion, sy'n eich galluogi i glymu tagiau i bob gweithrediad dyrannu cof a threfnu gwirio'r defnydd cywir o awgrymiadau i rwystro'r defnydd o gwendidau a achosir gan gyrchu blociau cof sydd eisoes wedi'u rhyddhau, byffer gorlif, mynediadau cyn cychwyn a defnyddio y tu allan i'r cyd-destun presennol.
    • Bellach gellir ffurfweddu cyfleusterau Dilysu Pointer platfform ARM64 ar wahân ar gyfer cnewyllyn a gofod defnyddwyr. Mae'r dechnoleg yn caniatáu ichi ddefnyddio cyfarwyddiadau ARM64 arbenigol i wirio cyfeiriadau dychwelyd gan ddefnyddio llofnodion digidol sy'n cael eu storio yn y darnau uchaf o'r pwyntydd ei hun nad ydynt yn cael eu defnyddio.
    • Mae Linux modd defnyddiwr wedi ychwanegu cefnogaeth ar gyfer defnyddio gyrwyr ar gyfer dyfeisiau PCI gyda bws PCI rhithwir, a weithredir gan y gyrrwr PCI-over-virtio.
    • Ar gyfer systemau x86, ychwanegwyd cefnogaeth i'r ddyfais paravirtualized virtio-iommu, gan ganiatáu i geisiadau IOMMU fel ATTACH, DETACH, MAP ac UNMAP gael eu hanfon dros y cludiant virtio heb efelychu tablau tudalennau cof.
    • Ar gyfer CPUs Intel, o'r teulu Skylake i Coffee Lake, mae'r defnydd o Intel TSX (Transactional Synchronization Extensions), sy'n darparu offer ar gyfer gwella perfformiad cymwysiadau aml-edau trwy ddileu gweithrediadau cydamseru diangen yn ddeinamig, yn anabl yn ddiofyn. Mae estyniadau wedi'u hanalluogi oherwydd y posibilrwydd o ymosodiadau Zombieload sy'n trin gollyngiadau gwybodaeth trwy sianeli trydydd parti sy'n digwydd yn ystod gweithrediad mecanwaith TAA (TSX Asynchronous Abort).
  • Is-system rhwydwaith
    • Integreiddio i graidd MPTCP (MultiPath TCP), estyniad o'r protocol TCP ar gyfer trefnu gweithrediad cysylltiad TCP â danfon pecynnau ar yr un pryd ar hyd sawl llwybr trwy wahanol ryngwynebau rhwydwaith sy'n gysylltiedig â gwahanol gyfeiriadau IP. Mae'r datganiad newydd yn ychwanegu mecanwaith ar gyfer gosod eich polisïau stwnsio traffig eich hun ar gyfer IPv4 a IPv6 (polisi hash aml-lwybr), gan ei gwneud hi'n bosibl penderfynu o ofod defnyddwyr pa feysydd mewn pecynnau, gan gynnwys rhai wedi'u hamgáu, fydd yn cael eu defnyddio wrth gyfrifo'r hash sy'n pennu'r dewis llwybr ar gyfer y pecyn.
    • Mae cefnogaeth ar gyfer socedi SOCK_SEQPACKET (trosglwyddiad datagramau wedi'i archebu ac yn ddibynadwy) wedi'i ychwanegu at y cludiant rhithwir virtio.
    • Mae galluoedd mecanwaith soced SO_REUSEPORT wedi'u hehangu, sy'n caniatáu i sawl soced gwrando gysylltu ag un porthladd ar unwaith i dderbyn cysylltiadau â dosbarthiad ceisiadau sy'n dod i mewn ar yr un pryd ar draws yr holl socedi sy'n gysylltiedig trwy SO_REUSEPORT, sy'n symleiddio'r broses o greu cymwysiadau gweinydd aml-edau . Mae'r fersiwn newydd yn ychwanegu offer ar gyfer trosglwyddo rheolaeth i soced arall rhag ofn y bydd methiant wrth brosesu cais gan y soced a ddewiswyd yn wreiddiol (yn datrys y broblem gyda cholli cysylltiadau unigol wrth ailgychwyn gwasanaethau).
  • Offer
    • Mae'r gyrrwr amdgpu yn darparu cefnogaeth ar gyfer cyfres newydd AMD Radeon RX 6000 o GPUs, â'r cod “Beige Goby” (Navi 24) a “Yellow Carp”, yn ogystal â gwell cefnogaeth i'r GPU Aldebaran (gfx90a) a Van Gogh APU. Ychwanegwyd y gallu i weithio ar yr un pryd gyda sawl panel eDP. Ar gyfer APU Renoir, mae cefnogaeth ar gyfer gweithio gyda byfferau wedi'u hamgryptio mewn cof fideo (TMZ, Trusted Memory Zone) wedi'i roi ar waith. Cefnogaeth ychwanegol ar gyfer cardiau graffeg dad-blygio poeth. Ar gyfer GPUs Radeon RX 6000 (Navi 2x) a GPUs AMD hŷn, mae cefnogaeth ASPM (Active State Power Management) wedi'i alluogi yn ddiofyn, a alluogwyd yn flaenorol ar gyfer GPUs Navi 1x, Vega a Polaris yn unig.
    • Ar gyfer sglodion AMD, mae cefnogaeth ar gyfer cof rhithwir a rennir (SVM, cof rhithwir a rennir) wedi'i ychwanegu yn seiliedig ar yr is-system HMM (Rheoli cof Heterogenaidd), sy'n caniatáu defnyddio dyfeisiau gyda'u hunedau rheoli cof eu hunain (MMU, uned rheoli cof), sy'n gallu cyrchu'r prif gof. Yn benodol, gan ddefnyddio HMM, gallwch drefnu gofod cyfeiriad a rennir rhwng y GPU a'r CPU, lle gall y GPU gael mynediad at brif gof y broses.
    • Ychwanegwyd cefnogaeth gychwynnol ar gyfer technoleg Shift Smart AMD, sy'n newid gosodiadau pŵer CPU a GPU yn ddeinamig ar liniaduron gyda chipset AMD a cherdyn graffeg i hybu perfformiad ar gyfer hapchwarae, golygu fideo, a rendro 3D.
    • Mae'r gyrrwr i915 ar gyfer cardiau graffeg Intel yn cynnwys cefnogaeth ar gyfer sglodion Intel Alderlake P.
    • Ychwanegwyd gyrrwr drm/hyperv ar gyfer addasydd graffeg rhithwir Hyper-V.
    • Cefnogaeth ychwanegol i gyfrifiadur popeth-mewn-un Raspberry Pi 400.
    • Ychwanegwyd gyrrwr dell-wmi-privacy i gefnogi'r camera caledwedd a'r switshis meicroffon sydd wedi'u cynnwys yn gliniaduron Dell.
    • Ar gyfer gliniaduron Lenovo, mae rhyngwyneb WMI wedi'i ychwanegu ar gyfer newid gosodiadau BIOS trwy sysfs / sys / class / firmware-prionations /.
    • Cefnogaeth estynedig ar gyfer dyfeisiau gyda rhyngwyneb USB4.
    • Cefnogaeth ychwanegol ar gyfer AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 a Texas Instruments TAS2505 cardiau sain a chodecs. Gwell cefnogaeth sain ar liniaduron HP ac ASUS. Ychwanegwyd clytiau i leihau oedi cyn i sain ddechrau chwarae ar ddyfeisiau USB.

Ffynhonnell: opennet.ru

Ychwanegu sylw