Rhyddhau cnewyllyn Linux 5.3

Ar ôl dau fis o ddatblygiad, Linus Torvalds cyflwyno rhyddhau cnewyllyn Linux 5.3. Ymhlith y newidiadau mwyaf nodedig: cefnogaeth i GPUs AMD Navi, proseswyr Zhaoxi a thechnoleg rheoli pŵer Intel Speed ​​Select, y gallu i ddefnyddio cyfarwyddiadau umwait i aros heb ddefnyddio cylchoedd,
modd 'clampio defnydd' sy'n cynyddu rhyngweithedd ar gyfer CPUs anghymesur, y galwad system pidfd_open, y gallu i ddefnyddio cyfeiriadau IPv4 o'r is-rwydwaith 0.0.0.0/8, y posibilrwydd o gyflymu caledwedd nftables, cefnogaeth HDR yn yr is-system DRM, integreiddio'r ACRN gorweledydd.

В cyhoeddiad datganiad newydd, atgoffodd Linus yr holl ddatblygwyr o brif reol datblygiad cnewyllyn - cynnal yr un ymddygiad ar gyfer cydrannau gofod defnyddiwr. Ni ddylai newidiadau i'r cnewyllyn dorri mewn unrhyw fodd ar gymwysiadau sydd eisoes yn rhedeg nac arwain at atchweliadau ar lefel y defnyddiwr. Yn yr achos hwn, gall torri ymddygiad achosi nid yn unig newid yn yr ABI, dileu cod hen ffasiwn, neu ymddangosiad gwallau, ond hefyd effaith anuniongyrchol gwelliannau defnyddiol sy'n gweithio'n gywir. Fel enghraifft eglurhaol roedd taflu yn ddefnyddiol optimeiddio yn y cod Ext4, sy'n lleihau nifer y mynediadau gyriant trwy analluogi rhag-ddarllen y tabl inod ar gyfer ceisiadau I/O bach.

Arweiniodd yr optimeiddio at y ffaith, oherwydd gostyngiad mewn gweithgaredd disg, bod entropi ar gyfer y generadur rhifau hap getrandom () wedi dechrau cronni'n arafach ac mewn rhai ffurfweddiadau, o dan rai amgylchiadau, gellid gweld rhewi wrth lwytho nes bod y pwll entropi llenwi. Gan fod yr optimeiddio yn ddefnyddiol iawn, cododd trafodaeth ymhlith datblygwyr lle cynigiwyd trwsio'r broblem trwy analluogi modd blocio rhagosodedig yr alwad getrandom () ac ychwanegu baner ddewisol i aros am entropi, ond byddai newid o'r fath yn effeithio ar y ansawdd yr haprifau yn ystod cam cychwynnol y llwytho.

Mae'r fersiwn newydd yn cynnwys 15794 o atebion gan 1974 o ddatblygwyr,
maint clwt - 92 MB (effeithiwyd ar y newidiadau ar 13986 o ffeiliau, ychwanegwyd 258419 o linellau cod,
599137 rhesi wedi'u tynnu). Cyflwynodd tua 39% o'r cyfan yn 5.3
newidiadau yn ymwneud â gyrwyr dyfeisiau, tua 12% o'r newidiadau yn
agwedd tuag at ddiweddaru cod sy'n benodol i saernïaeth caledwedd, 11%
yn ymwneud â'r pentwr rhwydwaith, 3% i systemau ffeiliau a 3% i fewnol
is-systemau cnewyllyn.

Y prif arloesiadau:

  • Gwasanaethau cof a system
    • Parhau i ddatblygu ymarferoldeb 'pidfd' i helpu i ymdrin â sefyllfaoedd ailddefnyddio PID (mae pidfd yn gysylltiedig â phroses benodol ac nid yw'n newid, tra gall PID fod yn gysylltiedig â phroses arall ar ôl i'r broses gyfredol sy'n gysylltiedig â'r PID hwnnw ddod i ben). Cafodd ei ychwanegu at y cnewyllyn yn flaenorol
      galwad system pidfd_send_signal() a baner CLONE_PIDFD yn yr alwad clôn() i gael pidfd i'w ddefnyddio yn idfd_send_signal(). Gallai defnyddio clôn () gyda baner CLONE_PIDFD achosi problemau gyda rheolwyr gwasanaeth neu system terfynu grym y tu allan i'r cof y platfform Android. Yn yr achos hwn, defnyddir galwad i fforchio () neu glonio () heb CLONE_PIDFD i ddechrau.

      Cyflwynodd Kernel 5.3 yr alwad system pidfd_agored(), sy'n eich galluogi i gael pidfd y gellir ei wirio ar gyfer proses fympwyol bresennol na chafodd ei chreu trwy ffonio clôn() gyda'r faner CLONE_PIDFD. Hefyd ychwanegwyd cefnogaeth ar gyfer pleidleisio pidfd gan ddefnyddio arolwg barn () ac epoll (), sy'n caniatáu i reolwyr proses olrhain terfynu prosesau mympwyol heb ofni cyflwr hil os caiff PID ei neilltuo i broses newydd. Mae'r mecanwaith ar gyfer hysbysu pan fydd proses sy'n gysylltiedig â pidfd wedi dod i ben yn debyg i hysbysu pan fydd ei broses plentyn wedi dod i ben;

    • Mae cefnogaeth ar gyfer y mecanwaith pinio llwyth wedi'i ychwanegu at y trefnydd tasgau (Clampio defnydd), sy'n eich galluogi i gadw at yr ystodau amlder lleiaf neu uchaf, yn dibynnu ar y tasgau sy'n weithredol ar y CPU. Mae'r mecanwaith a gyflwynir yn cyflymu tasgau sy'n effeithio'n uniongyrchol ar ansawdd profiad y defnyddiwr trwy redeg y tasgau hyn o leiaf ar ben isaf yr amlder "gofynedig". Mae tasgau â blaenoriaeth isel nad ydynt yn effeithio ar waith y defnyddiwr yn cael eu lansio gan ddefnyddio terfyn uchaf yr amledd “a ganiateir”. Gosodir terfynau trwy'r priodoleddau sched_uclamp_util_min a sched_uclamp_util_max yng ngalwad system sched_setattr().
    • Cefnogaeth ychwanegol ar gyfer technoleg rheoli ynni Dewis Cyflymder Intel, ar gael ar weinyddion dethol gyda phroseswyr Intel Xeon. Mae'r dechnoleg hon yn caniatáu ichi osod gosodiadau trwybwn perfformiad a rhaniad ar gyfer gwahanol greiddiau CPU, sy'n eich galluogi i flaenoriaethu perfformiad ar gyfer tasgau a gyflawnir ar greiddiau penodol, gan aberthu perfformiad ar greiddiau eraill;
    • Prosesau yn y gofod defnyddiwr a roddwyd y gallu i aros am gyfnod byr heb ddefnyddio dolenni gan ddefnyddio'r cyfarwyddyd umwait. Bydd y cyfarwyddyd hwn, ynghyd â'r cyfarwyddiadau umonitor a tpause, yn cael eu cynnig yn sglodion "Tremont" Intel sydd ar ddod, a bydd yn caniatáu ar gyfer gweithredu oedi sy'n effeithlon o ran ynni ac nad ydynt yn effeithio ar berfformiad edafedd eraill wrth ddefnyddio Hyper Threading;
    • Ar gyfer pensaernïaeth RISC-V, mae cefnogaeth ar gyfer tudalennau cof mawr wedi'i ychwanegu;
    • Mae'r mecanwaith olrhain kprobes wedi ychwanegu'r gallu i gyfeirio pwyntiau cnewyllyn at ofod defnyddwyr, y gellir eu defnyddio, er enghraifft, i werthuso cynnwys strwythurau a drosglwyddir i alwadau system. Mae'r gallu i osod sieciau yn y cam cychwyn hefyd wedi'i ychwanegu.
    • Ychwanegwyd opsiwn PREEMPT_RT at y ffeil ffurfweddu ar gyfer gweithrediad amser real. Nid yw'r cod ei hun i gefnogi modd amser real wedi'i ychwanegu at y cnewyllyn eto, ond mae ymddangosiad yr opsiwn yn arwydd da bod yr epig hirdymor integreiddio Mae clytiau amser real-Preempt bron wedi'u cwblhau;
    • Ychwanegwyd galwad system clôn3() gyda gweithrediad fersiwn mwy estynadwy o'r rhyngwyneb clôn(), sy'n caniatáu pennu nifer fwy o fflagiau;
    • Ychwanegwyd triniwr bpf_send_signal(), sy'n caniatáu i raglenni BPF anfon signalau i brosesau mympwyol;
    • Ar gyfer digwyddiadau perf yn yr amgylchedd hypervisor KVM, mae mecanwaith hidlo digwyddiad newydd wedi'i ychwanegu, gan ganiatáu i'r gweinyddwr bennu'r mathau o ddigwyddiadau a ganiateir neu na chaniateir eu monitro ar ochr y system westai;
    • Mae'r gallu i brosesu rhaglenni gyda dolenni wedi'i ychwanegu at fecanwaith dilysu cais eBPF os yw gweithrediad y ddolen yn gyfyngedig ac na all arwain at fynd y tu hwnt i'r terfyn ar uchafswm nifer y cyfarwyddiadau;
  • Is-system ddisg, systemau I/O a ffeiliau
    • Mae system ffeiliau XFS bellach yn cefnogi ffordd osgoi mewnod aml-edau (er enghraifft, wrth wirio cwotâu). Mae ioctls BULKSTAT ac INUMBERS newydd wedi'u hychwanegu, gan ddarparu mynediad i'r nodweddion a ymddangosodd yn y pumed rhifyn o'r fformat FS, megis yr amser geni inod a'r gallu i osod paramedrau BULKSTAT ac INUMBERS ar gyfer pob grŵp AG (Grwpiau Dyrannu);
    • Yn Est4 cefnogaeth ychwanegol gwagleoedd mewn cyfeiriaduron (blociau heb eu cysylltu).
      Darperir prosesu baner “i” (digyfnewid) ar gyfer ffeiliau agored (gwaherddir ysgrifennu mewn sefyllfa pe bai'r faner wedi'i gosod ar adeg pan oedd y ffeil eisoes ar agor);

    • Mae Btrfs yn darparu diffiniad o weithrediad cyflym crc32c ar bob pensaernïaeth;
    • Yn CIFS, mae'r cod ar gyfer cymorth smbdirect wedi'i ddileu fel datblygiad arbrofol. Ychwanegodd SMB3 y gallu i ddefnyddio algorithmau cryptograffig yn y modd GCM. Ychwanegwyd opsiwn mowntio newydd i dynnu paramedrau modd o gofnodion ACE (Mynediad Rheoli Mynediad). Optimeiddio perfformiad yr alwad agored();
    • Ychwanegwyd opsiwn at F2FS i gyfyngu ar y casglwr sbwriel wrth redeg yn y modd checkpoint = analluogi. Ychwanegwyd ioctl i gael gwared ar ystodau bloc o F2FS, gan ganiatáu ar gyfer addasiadau maint rhaniad ar-y-hedfan. Ychwanegwyd y gallu i osod ffeil gyfnewid yn F2FS i ddarparu I/O uniongyrchol. Cefnogaeth ychwanegol ar gyfer pinio ffeil a dyrannu blociau ar gyfer ffeiliau tebyg i bob defnyddiwr;
    • Cefnogaeth ychwanegol ar gyfer gweithrediadau asyncronaidd sendmsg() a recvmsg() i'r rhyngwyneb ar gyfer mewnbwn/allbwn asyncronaidd io_uring;
    • Mae cefnogaeth ar gyfer cywasgu gan ddefnyddio'r algorithm zstd a'r gallu i wirio delweddau FS wedi'u llofnodi wedi'u hychwanegu at system ffeiliau UBIFS;
    • Mae Ceph FS bellach yn cefnogi labeli diogelwch SELinux ar gyfer ffeiliau;
    • Ar gyfer NFSv4, mae opsiwn mowntio newydd “nconnect=” wedi'i weithredu, sy'n pennu nifer y cysylltiadau a sefydlwyd gyda'r gweinydd. Bydd traffig rhwng y cysylltiadau hyn yn cael ei ddosbarthu gan ddefnyddio cydbwyso llwythi. Yn ogystal, mae'r gweinydd NFSv4 bellach yn creu cyfeiriadur /proc/fs/nfsd/clients gyda gwybodaeth am gleientiaid cyfredol, gan gynnwys gwybodaeth am y ffeiliau y maent wedi'u hagor;
  • Rhithwiroli a Diogelwch
    • Mae'r cnewyllyn yn cynnwys hypervisor ar gyfer dyfeisiau wedi'u mewnosod ACRN, sydd wedi'i ysgrifennu gyda llygad i barodrwydd ar gyfer tasgau amser real ac addasrwydd i'w defnyddio mewn systemau sy'n hanfodol i genhadaeth. Mae ACRN yn darparu ychydig iawn o orbenion, yn gwarantu hwyrni isel ac ymatebolrwydd digonol wrth ryngweithio ag offer. Yn cefnogi rhithwiroli adnoddau CPU, I/O, is-system rhwydwaith, graffeg a gweithrediadau sain. Gellir defnyddio ACRN i redeg peiriannau rhithwir ynysig lluosog mewn unedau rheoli electronig, dangosfyrddau, systemau gwybodaeth modurol, dyfeisiau IoT defnyddwyr a thechnoleg wreiddiedig arall;
    • Yn Linux modd defnyddiwr wedi adio Modd teithio amser, sy'n eich galluogi i arafu neu gyflymu amser mewn amgylchedd UML rhithwir i'w gwneud hi'n haws dadfygio cod sy'n gysylltiedig ag amser. Yn ogystal, mae paramedr wedi'i ychwanegu
      amser-teithio-cychwyn, sy'n caniatáu i gloc y system gychwyn o eiliad benodol mewn fformat epoc;

    • Mae opsiynau llinell orchymyn cnewyllyn newydd “init_on_alloc” ac “init_on_free” wedi'u hychwanegu, pan nodir hynny, galluogir sero ardaloedd cof wedi'u dyrannu a'u rhyddhau (gan lenwi â sero ar gyfer malloc ac am ddim), sy'n caniatáu mwy o ddiogelwch oherwydd gorbenion cychwynnol ychwanegol;
    • Gyrrwr newydd wedi'i ychwanegu virtio-iommu gyda gweithredu dyfais para-rhithwir sy'n eich galluogi i anfon ceisiadau IOMMU fel ATTACH, DETACH, MAP ac UNMAP dros y cludiant virtio heb efelychu tablau tudalennau cof;
    • Gyrrwr newydd wedi'i ychwanegu virtio-pmem, sy'n cynrychioli mynediad i ddyfeisiau storio wedi'u mapio i ofod cyfeiriad ffisegol, megis NVDIMMs;
    • Wedi gweithredu'r gallu i atodi allweddi cryptograffig i ofod enw defnyddiwr neu rwydwaith (mae allweddi'n dod yn anhygyrch y tu allan i'r gofod enw a ddewiswyd), yn ogystal â diogelu allweddi gan ddefnyddio ACLs;
    • I'r is-system crypto wedi adio cefnogaeth ar gyfer algorithm stwnsio di-cryptograffeg cyflym iawn xxhash, y mae ei gyflymder yn dibynnu ar berfformiad cof;
  • Is-system rhwydwaith
    • Galluogi prosesu cyfeiriadau IPv4 yn yr ystod 0.0.0.0/8, nad oedd ar gael i'w defnyddio o'r blaen. Cyflwyniad yr is-rwydwaith hwn yn caniatáu dosbarthu 16 miliwn o gyfeiriadau IPv4 eraill;
    • Yn Netfilter ar gyfer nftables wedi adio cefnogaeth ar gyfer mecanweithiau cyflymu caledwedd ar gyfer hidlo pecynnau trwy ddefnyddio gyrwyr ychwanegol API Bloc Llif. Gellir gosod tablau rheolau cyfan gyda'r holl gadwyni ar ochr addaswyr rhwydwaith. Gwneir galluogi trwy rwymo baner NFT_TABLE_F_HW i'r bwrdd. Yn cefnogi metadata protocol Haen 3 a Haen 4 syml, derbyn/gwrthod gweithredoedd, mapiau yn ôl IP a phorthladdoedd rhwydwaith anfonwr/derbynnydd a math o brotocol;
    • Wedi adio cefnogaeth olrhain cysylltiad adeiledig ar gyfer pontydd rhwydwaith, nad oes angen defnyddio'r haen efelychu br_netfilter;
    • Mewn nf_tablau wedi adio cefnogaeth i'r modiwl SYNPROXY, sy'n ailadrodd ymarferoldeb tebyg o iptables, a'r gallu i wirio rheolau ar gyfer opsiynau unigol yn y pennawd IPv4 hefyd yn cael ei weithredu;
    • Ychwanegwyd y gallu i atodi rhaglenni BPF i alwadau'r system setsockopt() a getsockopt(), sydd, er enghraifft, yn eich galluogi i atodi'ch trinwyr mynediad eich hun i'r galwadau hyn. Yn ogystal, mae pwynt galw newydd (bachyn) wedi'i ychwanegu, a gallwch chi drefnu galwad i'r rhaglen BPF unwaith ar gyfer pob egwyl RTT (amser taith gron, amser ping);
    • Ar gyfer IPv4 ac IPv6 wedi adio mecanwaith storio data llwybro nexthop newydd gyda'r nod o gynyddu graddadwyedd tablau llwybro. Dangosodd profion, wrth ddefnyddio'r system newydd, fod set o 743 mil o lwybrau wedi'u llwytho i'r cnewyllyn mewn dim ond 4.3 eiliad;
    • Ar gyfer Bluetooth gweithredu ymarferoldeb sydd ei angen i gefnogi LE ping;
  • Offer
    • Wedi adio cefnogaeth i broseswyr x86-gydnaws y cwmni Zhaoxin, a ddatblygwyd o ganlyniad i brosiect ar y cyd rhwng VIA Technologies a Dinesig Shanghai. Mae'r teulu ZX CPU wedi'i adeiladu ar bensaernïaeth Eseia x86-64, gan barhau â datblygiad technoleg VIA Centaur;
    • Mae'r is-system DRM (Rheolwr Rendro Uniongyrchol), yn ogystal â'r gyrwyr graffeg amdgpu ac i915, wedi ychwanegu cefnogaeth ar gyfer dosrannu, prosesu ac anfon metadata HDR (ystod ddeinamig uchel) trwy'r porthladd HDMI, gan ganiatáu defnyddio paneli a sgriniau HDR sy'n gallu arddangos ystodau disgleirdeb ychwanegol;
    • Mae'r gyrrwr amdgpu wedi ychwanegu cefnogaeth gychwynnol ar gyfer AMD NAVI GPU (RX5700), sy'n cynnwys y gyrrwr sylfaen, cod rhyngweithio sgrin (DCN2), GFX a chymorth cyfrifiadurol (GFX10),
      SDMA 5 (System DMA0), rheoli pŵer ac amgodyddion/datgodyddion amlgyfrwng (VCN2). mae amdgpu hefyd yn gwella cefnogaeth ar gyfer cardiau yn seiliedig ar GPUs Vega12 a Vega20, y mae galluoedd rheoli cof a phŵer ychwanegol wedi'u hychwanegu ar eu cyfer;

    • Cefnogaeth ychwanegol ar gyfer cardiau yn seiliedig ar GPUs VegaM i'r gyrrwr amdkfd (ar gyfer GPUs arwahanol, fel Fiji, Tonga, Polaris);
    • Yn y gyrrwr DRM ar gyfer cardiau fideo Intel ar gyfer sglodion Icelake gweithredu modd cywiro gama aml-segment newydd. Ychwanegwyd y gallu i allbynnu trwy DisplayPort yn y fformat YCbCr4:2:0. Ychwanegwyd firmware newydd GuC ar gyfer SKL, BXT, KBL, GLK ac ICL. Mae'r gallu i ddiffodd pŵer sgrin yn y modd asyncronig wedi'i weithredu. Wedi adio cefnogaeth ar gyfer arbed ac adfer y cyd-destun rendro ar gyfer sglodion Ironlake (gen5) a gen4 (Broadwater - Cantiga), sy'n eich galluogi i adfer cyflwr GPU o ofod defnyddwyr wrth symud o weithrediad un swp i un arall;
    • Mae'r gyrrwr Nouveau yn darparu canfod y chipset NVIDIA Turing TU116;
    • Mae galluoedd y gyrrwr DRM / KMS ar gyfer cyflymyddion sgrin ARM Komeda (Mali D71) wedi'u hehangu, cefnogaeth ar gyfer graddio, haenau hollti / uno, cylchdroi, ysgrifennu gohiriedig, AFBC, SMMU a fformatau amgodio lliw Y0L2, P010, YUV420_8/10BIT wedi wedi ei ychwanegu;
    • Mae'r gyrrwr MSM yn ychwanegu cefnogaeth ar gyfer y gyfres A540 GPU Adreno a ddefnyddir mewn proseswyr Qualcomm, yn ogystal â chefnogaeth i'r rheolwr MSM8998 DSI ar gyfer Snapdragon 835;
    • Ychwanegwyd gyrwyr ar gyfer paneli LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 a VXT VL050-8048NT-C01;

    • Wedi adio gyrrwr ar gyfer galluogi offer cyflymu dadgodio
      fideos ar gael yn Amlogic Meson SoC;

    • Yn y gyrrwr v3d (ar gyfer y Broadcom Video Core V GPU a ddefnyddir yn y Raspberry Pi) ymddangosodd cefnogaeth anfon graddwyr cyfrifiadurol;
    • Wedi adio gyrrwr ar gyfer bysellfyrddau SPI a trackpads a ddefnyddir mewn modelau modern o gliniaduron Apple MacBook a MacBookPro;
    • Wedi adio amddiffyniad ychwanegol ar gyfer galwadau ioctl sy'n gysylltiedig â'r gyrrwr hyblyg, ac mae'r gyrrwr ei hun wedi'i nodi fel un heb ei gynnal
      (“amddifad”), sy'n awgrymu terfynu ei brofi. Mae'r gyrrwr yn dal i gael ei storio yn y cnewyllyn, ond nid yw ei weithrediad cywir wedi'i warantu. Ystyrir bod y gyrrwr wedi dyddio, gan ei bod yn anodd dod o hyd i offer gweithio i'w brofi - mae'r holl yriannau allanol cyfredol, fel rheol, yn defnyddio'r rhyngwyneb USB.

    • Wedi adio gyrrwr cpufreq ar gyfer byrddau Raspberry Pi, sy'n eich galluogi i reoli newidiadau mewn amlder prosesydd yn ddeinamig;
    • Cefnogaeth ychwanegol ar gyfer ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) ac Amlogic G12B (4x Cortex-A73 + 2x Cortex- A53 ), yn ogystal â byrddau:
      • Puriaeth Librem5,
      • BMC Aspeed,
      • Microsoft Olympus BMC,
      • Kontron SMRC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Blwch Teledu Hugsun X99 (Rockchip RK3399),
      • Khadas Edge/Edge-V/Capten (Rockchip RK3399),
      • Helo RZ/G2M,
      • NXP LS1021A-TSN.

Ar yr un pryd, Sefydliad Meddalwedd Rydd America Ladin ffurfio
opsiwn cnewyllyn hollol rhad ac am ddim 5.3 - Linux-libre 5.3-gnu, wedi'i glirio o elfennau firmware a gyrrwr sy'n cynnwys cydrannau nad ydynt yn rhydd neu adrannau cod, y mae eu cwmpas yn gyfyngedig gan y gwneuthurwr. Yn y datganiad newydd, mae llwytho blob yn anabl yn y gyrwyr qcom, hdcp drm, allegro-dvt a meson-vdec.
Cod glanhau blob wedi'i ddiweddaru mewn gyrwyr ac is-systemau amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, gyrrwr sain ar gyfer skylake, yn ogystal ag yn y dogfennau microcode.

Ffynhonnell: opennet.ru

Ychwanegu sylw