Linux kernel release 5.3

Nei twa moannen fan ûntwikkeling, Linus Torvalds yntrodusearre kernel release Linux 5.3. Under de meast opfallende feroarings: stipe foar AMD Navi GPU's, Zhaoxi-processors en Intel Speed ​​​​Select-technology foar enerzjybehear, de mooglikheid om umwait-ynstruksjes te brûken om te wachtsjen sûnder syklusen te brûken,
de 'utilization clamping'-modus fergruttet ynteraktiviteit foar asymmetryske CPU's, de pidfd_open-systeemoprop, de mooglikheid om IPv4-adressen te brûken fan it 0.0.0.0/8-subnet, de mooglikheid fan nftables hardware-fersnelling, HDR-stipe yn it DRM-subsysteem, yntegraasje fan 'e ACRN hypervisor.

В oankundiging nije release, Linus herinnerde alle ûntwikkelders fan 'e haadregel fan kernelûntwikkeling - it behâld fan itselde gedrach foar komponinten fan brûkersromte. Feroarings oan 'e kernel moatte op gjin inkelde manier al rinnende applikaasjes brekke of liede ta regressions op brûkersnivo. Yn dit gefal kin in oertreding fan gedrach net allinich in feroaring yn 'e ABI feroarsaakje, it fuortheljen fan ferâldere koade, of it ferskinen fan flaters, mar ek de yndirekte ynfloed fan nuttige ferbetterings dy't goed wurkje. As yllustratyf foarbyld wie der wegereard brûkber optimalisaasje yn Ext4 koade, dy't ferleget it oantal drive tagong troch it útskeakeljen fan pre-lêzen fan de inode tafel foar lytse I / O fersiken.

De optimalisaasje late ta it feit dat, troch in fermindering fan skiifaktiviteit, entropy foar de getrandom() willekeurich getalgenerator stadiger begon te sammeljen en yn guon konfiguraasjes, ûnder bepaalde omstannichheden, koe befriezen wurde waarnommen by it laden oant de entropypool wie Folje. Om't de optimalisaasje echt nuttich is, ûntstie in diskusje ûnder ûntwikkelders wêryn it waard foarsteld om it probleem op te lossen troch de standert blokkearjende modus fan 'e getrandom()-oprop út te skeakeljen en in opsjonele flagge ta te foegjen om te wachtsjen op entropy, mar sa'n feroaring soe ynfloed hawwe op de kwaliteit fan 'e willekeurige nûmers yn' e earste faze fan it laden.

De nije ferzje omfettet 15794 fixes fan 1974 ûntwikkelders,
patchgrutte - 92 MB (feroarings beynfloede 13986 bestannen, 258419 rigels koade waarden tafoege,
599137 rigen fuortsmiten). Sawat 39% fan alle presintearre yn 5.3
feroarings binne yn ferbân mei apparaat drivers, likernôch 12% fan feroarings hawwe
hâlding foar it bywurkjen fan koade spesifyk foar hardware-arsjitektuer, 11%
ferbân mei it netwurk stack, 3% oan triem systemen en 3% oan ynterne
kernel subsystemen.

haad ynnovaasjes:

  • Unthâld en systeem tsjinsten
    • Trochgeande ûntwikkeling fan 'pidfd'-funksjonaliteit om te helpen by it behanneljen fan PID-herbrûksituaasjes (pidfd is assosjearre mei in spesifyk proses en feroaret net, wylst in PID kin wurde assosjeare mei in oar proses neidat it aktuele proses ferbûn mei dy PID beëiniget). It waard earder tafoege oan de kernel
      de pidfd_send_signal () systeem oprop en de CLONE_PIDFD flagge yn de clone () oprop te krijen in pidfd foar gebrûk yn idfd_send_signal (). It brûken fan clone() mei de CLONE_PIDFD-flagge kin problemen feroarsaakje mei tsjinstbehearders of it Android-platfoarm syn krêftbeëinigingssysteem sûnder ûnthâld. Yn dit gefal wurdt in oprop oan fork () of clone () sûnder CLONE_PIDFD brûkt om te begjinnen.

      Kernel 5.3 yntrodusearre de systeemoprop pidfd_open(). Ek tafoege stipe foar pidfd polling mei help fan poll () en epoll (), wêrtroch proses managers in track de beëiniging fan willekeurige prosessen sûnder eangst foar in ras betingst as in PID wurdt tawiisd oan in nij proses. It meganisme foar notifikaasje as in proses assosjearre mei pidfd is beëinige is fergelykber mei notify as syn bernproses is beëinige;

    • Stipe foar it load pinning-meganisme is tafoege oan de taakplanner (Benutting clamping), wêrtroch jo de minimale of maksimale frekwinsjeberik kinne folgje, ôfhinklik fan de taken dy't aktyf binne op 'e CPU. It presintearre meganisme fersnelt taken dy't de kwaliteit fan 'e brûkersûnderfining direkt beynfloedzje troch dizze taken op syn minst oan' e legere ein fan 'e "frege" frekwinsje út te fieren. Taken mei lege prioriteit dy't gjin ynfloed hawwe op it wurk fan 'e brûker wurde lansearre mei de boppegrins fan' e "tastiene" frekwinsje. Limiten wurde ynsteld fia de sched_uclamp_util_min en sched_uclamp_util_max attributen yn de sched_setattr () systeem oprop.
    • Stipe tafoege foar technology foar enerzjybehear Intel Speed ​​​​Selektearje, beskikber op selektearre tsjinners mei Intel Xeon processors. Dizze technology kinne jo ynstelle prestaasjes en partition trochstreaming ynstellings foar ferskillende CPU kearnen, dat kinne jo foarrang jaan prestaasje foar taken útfierd op bepaalde kearnen, offerje prestaasjes op oare kearnen;
    • Prosessen yn brûkersromte ferliend de mooglikheid om in koarte tiid te wachtsjen sûnder loops te brûken mei de umwait-ynstruksje. Dizze ynstruksje, tegearre mei de umonitor- en tpause-ynstruksjes, wurde oanbean yn 'e kommende "Tremont"-chips fan Intel, en sil de ymplemintaasje fan fertragingen mooglik meitsje dy't enerzjysunich binne en gjin ynfloed hawwe op de prestaasjes fan oare triedden by it brûken fan Hyper Threading;
    • Foar de RISC-V-arsjitektuer is stipe foar grutte ûnthâldsiden tafoege;
    • De kprobes tracing meganisme hat tafoege de mooglikheid om dereference kernel pointers nei brûkersromte, dat kin brûkt wurde, bygelyks, te evaluearjen de ynhâld fan struktueren trochjûn oan systeem oproppen. De mooglikheid om kontrôles te ynstallearjen by it opstartstadium is ek tafoege.
    • PREEMPT_RT opsje tafoege oan it konfiguraasjetriem foar real-time operaasje. De koade sels om real-time modus te stypjen is noch net tafoege oan 'e kernel, mar it uterlik fan' e opsje is in goed teken dat de lange termyn epyske yntegraasje Realtime-Preempt-patches binne tichtby foltôging;
    • Tafoege de clone3 () systeem oprop mei de útfiering fan in mear útwreidzjen ferzje fan de clone () ynterface, dat makket it mooglik om te spesifisearjen in grutter oantal flaggen;
    • Added bpf_send_signal () handler, wêrtroch BPF programma kin stjoere sinjalen nei willekeurige prosessen;
    • Foar perf-eveneminten yn 'e KVM-hypervisor-omjouwing is in nij meganisme foar evenemintefiltering tafoege, wêrtroch de behearder de soarten eveneminten kin bepale dy't tastien binne of net tastien foar tafersjoch op 'e side fan it gastsysteem;
    • De mooglikheid om programma's mei loops te ferwurkjen is tafoege oan it eBPF-applikaasjeferifikaasjemeganisme as de útfiering fan 'e loop beheind is en kin net liede ta it oersjen fan de limyt op it maksimale oantal ynstruksjes;
  • Skiif subsysteem, I / O en triem systemen
    • It XFS-bestânsysteem stipet no multi-threaded inode-bypass (bygelyks by it kontrolearjen fan kwotas). Nije ioctls BULKSTAT en INUMBERS binne tafoege, en jouwe tagong ta de funksjes dy't ferskynden yn 'e fyfde edysje fan it FS-formaat, lykas de inode bertetiid en de mooglikheid om de parameters BULKSTAT en INUMBERS yn te stellen foar elke AG-groep (Allocaasjegroepen);
    • yn ext4 stipe tafoege leechte yn mappen (ûnkeppele blokken).
      Ferwurking foarsjoen flagge "i" (ûnferoarlik) foar iepen triemmen (skriuwen is ferbean yn in situaasje as de flagge waard ynsteld op in tiid doe't de triem wie al iepen);

    • Btrfs jout in definysje fan in flugge ymplemintaasje fan crc32c op alle arsjitektuer;
    • Yn CIFS is de koade foar smbdirect-stipe fuortsmiten as eksperimintele ûntwikkeling. SMB3 tafoege de mooglikheid om kryptografyske algoritmen te brûken yn GCM-modus. In nije mount-opsje tafoege om modusparameters te ekstrahearjen út ACE-yngongen (Access Control Entry). Optimalisearre de prestaasjes fan 'e iepen () oprop;
    • In opsje tafoege oan F2FS om de garbage collector te beheinen as jo rinne yn kontrôlepunt = útskeakelje modus. Ioctl tafoege om blokbereiken fan F2FS te ferwiderjen, wêrtroch oanpassingen fan partitiongrutte on-the-fly kinne. De mooglikheid tafoege om in ruilbestân yn F2FS te pleatsen om direkte I / O te leverjen. Stipe tafoege foar it pinjen fan in bestân en it tawizen fan blokken foar ferlykbere bestannen foar alle brûkers;
    • Tafoege stipe foar asynchronous operaasjes sendmsg () en recvmsg () oan de ynterface foar asynchronous ynfier / útfier io_uring;
    • Stipe foar kompresje mei it zstd-algoritme en de mooglikheid om ûndertekene FS-ôfbyldings te ferifiearjen binne tafoege oan it UBIFS-bestânsysteem;
    • Ceph FS stipet no SELinux feiligensetiketten foar bestannen;
    • Foar NFSv4 is in nije mount-opsje "nconnect =" ymplementearre, dy't it oantal ferbiningen fêststeld mei de tsjinner bepaalt. Ferkear tusken dizze ferbinings wurdt ferdield mei load balancing. Derneist makket de NFSv4-tsjinner no in map /proc/fs/nfsd/clients mei ynformaasje oer aktuele kliïnten, ynklusyf ynformaasje oer de bestannen dy't se iepene hawwe;
  • Virtualisaasje en feiligens
    • De kernel omfettet in hypervisor foar ynbêde apparaten ACRN, dat is skreaun mei it each op reewilligens foar real-time taken en geskiktheid foar gebrûk yn missy-krityske systemen. ACRN leveret minimale overhead, garandearret lege latency en adekwate responsiviteit by ynteraksje mei apparatuer. Unterstützt virtualisaasje fan CPU-boarnen, I/O, netwurksubsysteem, grafiken en lûdoperaasjes. ACRN kin brûkt wurde om meardere isolearre firtuele masines út te fieren yn elektroanyske kontrôle-ienheden, dashboards, auto-ynformaasjesystemen, konsuminte-IoT-apparaten en oare ynbêde technology;
    • Yn brûker-modus Linux tafoege Tiidreismodus, wêrtroch jo tiid kinne fertrage of fersnelle yn in firtuele UML-omjouwing om it makliker te meitsjen om tiidrelatearre koade te debuggen. Dêrneist is in parameter tafoege
      time-travel-start, wêrtroch de systeemklok kin begjinne fan in spesifisearre momint yn epochformaat;

    • Nije kearn-kommando-rigelopsjes "init_on_alloc" en "init_on_free" binne tafoege, as spesifisearre, is nulearring fan tawiisde en befrijde ûnthâldgebieten ynskeakele (folje mei nullen foar malloc en fergees), wat ferhege feiligens mooglik makket troch ekstra initialisaasje-overhead;
    • Nije bestjoerder tafoege virtio-iommu mei de ymplemintaasje fan in paravirtualisearre apparaat wêrmei jo IOMMU-oanfragen lykas ATTACH, DETACH, MAP en UNMAP kinne stjoere oer it virtio-ferfier sûnder te emulearjen fan ûnthâldsidetabellen;
    • Nije bestjoerder tafoege virtio-pmem, fertsjintwurdiget tagong ta opslach apparaten yn kaart brocht oan fysike adres romte, lykas NVDIMMs;
    • Implementearre de mooglikheid om kryptografyske kaaien te heakjen oan in brûker of netwurk nammeromte (kaaien wurde ûnberikber bûten de selektearre nammeromte), en ek beskermje kaaien mei help ACLs;
    • Nei it Krypto-subsysteem tafoege stipe foar in heul rappe net-kryptografyske hashing-algoritme xxhash, wêrfan de snelheid hinget ôf fan ûnthâldprestaasjes;
  • Netwurk subsysteem
    • Ferwurking fan IPv4-adressen yn it berik 0.0.0.0/8 ynskeakele, dy't earder net beskikber wie foar gebrûk. Yntroduksje fan dit subnet sil tastean distribúsje nochris 16 miljoen IPv4-adressen;
    • Yn Netfilter foar nftables tafoege stipe foar hardware-fersnellingsmeganismen foar pakketfiltering troch it brûken fan tafoege sjauffeurs Flow Block API. Hiele tabellen fan regels mei alle keatlingen kinne wurde pleatst oan 'e kant fan netwurk adapters. It ynskeakeljen wurdt dien troch de NFT_TABLE_F_HW-flagge te binen oan 'e tabel. Unterstützt ienfâldige Layer 3 en Layer 4 protokol metadata, akseptearje / ôfwize aksjes, mappings troch IP en stjoerder / ûntfanger netwurk havens en protokol type;
    • Added ynboude ferbining tracking stipe foar netwurk brêgen, dy't net nedich it brûken fan de br_netfilter emulating laach;
    • Yn nf_tables tafoege stipe foar de SYNPROXY-module, dy't ferlykbere funksjonaliteit fan iptables replikearret, en de mooglikheid om regels foar yndividuele opsjes yn 'e IPv4-header te kontrolearjen is ek ymplementearre;
    • Taheakke de mooglikheid om te heakjen BPF programma oan de setsockopt () en getsockopt () systeem calls, dat, bygelyks, kinne jo heakje jo eigen tagong handlers oan dizze oproppen. Dêrnjonken is in nij oproppunt (heak) tafoege, wêrmei't jo foar elk RTT-ynterval ien kear in oprop organisearje kinne nei it BPF-programma (round-trip-tiid, pingtiid);
    • Foar IPv4 en IPv6 tafoege nij nexthop-routing-gegevensopslachmeganisme rjochte op it fergrutsjen fan de skalberens fan routingtabellen. Tests die bliken dat by it brûken fan it nije systeem, in set fan 743 tûzen rûtes waard laden yn de kearn yn just 4.3 sekonden;
    • Foar Bluetooth útfierd funksjonaliteit nedich om LE ping te stypjen;
  • Wetter - Agrarwetter
    • Added stipe foar de x86-kompatible processors fan it bedriuw Zhaoxin, ûntwikkele as gefolch fan in mienskiplik projekt tusken VIA Technologies en de Shanghai Gemeente. De ZX CPU-famylje is boud op 'e x86-64 Jesaja-arsjitektuer, trochgean mei de ûntwikkeling fan technology VIA Centaur;
    • It subsysteem DRM (Direct Rendering Manager), lykas de amdgpu- en i915-grafyske bestjoerders, hat stipe tafoege foar it parsearjen, ferwurkjen en ferstjoeren fan HDR (high dynamic range) metadata fia de HDMI-poarte, wêrtroch it gebrûk fan HDR-panielen en skermen mooglik is werjaan fan ekstra helderheidsberiken;
    • De amdgpu-bestjoerder hat inisjele stipe tafoege foar AMD NAVI GPU (RX5700), dy't de basisbestjoerder, skermynteraksjekoade (DCN2), GFX en berekkeningsstipe (GFX10) omfettet,
      SDMA 5 (Systeem DMA0), macht behear en multimedia encoders / decoders (VCN2). amdgpu ferbetteret ek stipe foar kaarten basearre op Vega12 en Vega20 GPUs, dêr't ekstra ûnthâld en macht behear mooglikheden binne tafoege;

    • Stipe tafoege foar kaarten basearre op VegaM GPU's oan 'e amdkfd-bestjoerder (foar diskrete GPU's, lykas Fiji, Tonga, Polaris);
    • Yn 'e DRM-bestjoerder foar Intel-fideokaarten foar Icelake-chips útfierd nije multi-segment gamma korreksje modus. De mooglikheid tafoege om út te fieren fia DisplayPort yn it YCbCr4: 2: 0-formaat. Nije firmware tafoege GuC foar SKL, BXT, KBL, GLK en ICL. De mooglikheid om skermkrêft út te skeakeljen yn asynchrone modus is ymplementearre. Added stipe foar it bewarjen en restaurearjen fan de rendering kontekst foar Ironlake (gen5) en gen4 (Broadwater - Cantiga) chips, wêrmei jo te herstellen de GPU steat fan brûkersromte as it ferpleatsen fan de iene batch operaasje nei in oare;
    • De Nouveau-bestjoerder jout deteksje fan de NVIDIA Turing TU116-chipset;
    • De mooglikheden fan 'e DRM / KMS-bestjoerder foar ARM Komeda skermversnellers (Mali D71) binne útwreide, stipe foar skaalfergrutting, split / gearfoegje lagen, rotaasje, útsteld skriuwen, AFBC, SMMU en kleurkodearjen formaten Y0L2, P010, YUV420_8/10BIT hat is tafoege;
    • De MSM-bestjoerder foeget stipe ta foar de A540 GPU Adreno-searje brûkt yn Qualcomm-processors, en ek stipe foar de MSM8998 DSI-controller foar Snapdragon 835;
    • Bestjoerders tafoege foar LCD-panielen Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 en VXT VL050-8048NT-C01;

    • Added stjoerprogramma foar it ynskeakeljen fan ark foar dekodearjen fan fersnelling
      fideo's beskikber yn Amlogic Meson SoC;

    • Yn 'e v3d-bestjoerder (foar de Broadcom Video Core V GPU brûkt yn' e Raspberry Pi) ferskynde stypje ferstjoeren fan kompjûtershaders;
    • Added stjoerprogramma foar SPI-toetseboerden en trackpads brûkt yn moderne modellen fan Apple MacBook en MacBookPro laptops;
    • Added ekstra beskerming foar ioctl-oproppen dy't ferbûn binne mei de floppy-bestjoerder, en de sjauffeur sels is markearre as net ûnderhâlden
      ("wees"), wat de beëiniging fan syn testen ymplisearret. De stjoerprogramma is noch opslein yn 'e kernel, mar de krekte wurking is net garandearre. De bestjoerder wurdt beskôge ferâldere, om't it is lestich te finen wurkapparatuer foar it testen - alle aktuele eksterne skiven brûke as regel de USB-ynterface.

    • Added cpufreq-bestjoerder foar Raspberry Pi-boerden, wêrtroch jo feroarings yn prosessorfrekwinsje dynamysk kinne kontrolearje;
    • Stipe tafoege foar nije ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSP's + MMA) en Amlogic G12B (4x Cortex-A73 + 2x A53), lykas planken:
      • Purisme Librem 5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger 96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Hugsun X99 TV Box (Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

Tagelyk, de Latin American Free Software Foundation foarme
opsje folslein fergese kernel 5.3 - Linux-libre 5.3-gnu, wiske fan firmware- en stjoerprogramma-eleminten dy't net-frije komponinten as koade-seksjes befetsje, wêrfan de omfang wurdt beheind troch de fabrikant. Yn 'e nije release is blobladen útskeakele yn' e qcom, hdcp drm, allegro-dvt en meson-vdec-bestjoerders.
Bywurke blob skjinmeitsjen koade yn bestjoerders en subsystemen amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, lûd stjoerprogramma foar skylake, likegoed as yn de mikrokoade dokumintaasje.

Boarne: opennet.ru

Add a comment