Kutulutsidwa kwa kernel ya Linux 5.3

Pambuyo pa miyezi iwiri ya chitukuko, Linus Torvalds anayambitsa kutulutsidwa kwa kernel Linux 5.3. Zina mwa zosintha zodziwika bwino: thandizo la AMD Navi GPUs, mapurosesa a Zhaoxi ndi Intel Speed ​​​​Select power management technology, kuthekera kogwiritsa ntchito malangizo amwait kudikirira osagwiritsa ntchito kuzungulira,
'kugwiritsa ntchito clamping' komwe kumawonjezera kuyanjana kwa ma CPU asymmetric, pidfd_open system call, kuthekera kogwiritsa ntchito ma adilesi a IPv4 kuchokera pa 0.0.0.0/8 subnet, kuthekera kwa nftables hardware acceleration, thandizo la HDR mu subsystem ya DRM, kuphatikiza kwa ACRN hypervisor.

В kulengeza kumasulidwa kwatsopano, Linus anakumbutsa onse omanga za lamulo lalikulu la chitukuko cha kernel - kusunga khalidwe lomwelo la zigawo za malo ogwiritsira ntchito. Kusintha kwa kernel sikuyenera mwanjira iliyonse kuswa mapulogalamu omwe akuyendetsa kale kapena kubweretsa kusinthika kwa ogwiritsa ntchito. Pamenepa, kuphwanya khalidwe sikungangoyambitsa kusintha kwa ABI, kuchotsedwa kwa code yakale, kapena maonekedwe a zolakwika, komanso kukhudza kwachindunji kwa kusintha kwabwino komwe kumagwira ntchito moyenera. Monga chitsanzo fanizo panali kutayidwa zothandiza kukhathamiritsa mu code ya Ext4, yomwe imachepetsa kuchuluka kwa magalimoto ofikira poletsa kuwerengera kusanachitike kwa tebulo la inode pazopempha zazing'ono za I/O.

Kukhathamiritsaku kudapangitsa kuti, chifukwa cha kuchepa kwa ntchito ya disk, entropy ya jenereta yachisawawa getrandom() idayamba kudziunjikira pang'onopang'ono komanso m'makonzedwe ena, nthawi zina, kuzizira kumatha kuwonedwa pakutsitsa mpaka dziwe la entropy lidakhala. kudzazidwa. Popeza kukhathamiritsa ndi kothandiza kwenikweni, kukambirana kudabuka pakati pa omwe akutukula omwe adafunsidwa kuti athetse vutoli poletsa njira yotsekereza ya getrandom() kuyimba ndikuwonjezera mbendera yosankha kudikirira entropy, koma kusintha koteroko kungakhudze khalidwe la manambala mwachisawawa pa siteji koyamba kutsitsa.

Mtundu watsopanowu ukuphatikiza zosintha 15794 kuchokera kwa opanga 1974,
kukula kwa chigamba - 92 MB (zosintha zidakhudza mafayilo a 13986, mizere ya 258419 yamakhodi idawonjezedwa,
599137 mizere yachotsedwa). Pafupifupi 39% ya onse operekedwa mu 5.3
zosintha zokhudzana ndi madalaivala a chipangizo, pafupifupi 12% ya zosintha ndizo
malingaliro okhudza kukonzanso kachidindo kamangidwe ka hardware, 11%
zokhudzana ndi stack network, 3% ku mafayilo amafayilo ndi 3% mkati
kernel subsystems.

waukulu zatsopano:

  • Memory ndi ntchito zadongosolo
    • Kupititsa patsogolo ntchito za 'pidfd' kuti zithandizire kuthana ndi zochitika zogwiritsanso ntchito PID (pidfd imalumikizidwa ndi njira inayake ndipo sikusintha, pomwe PID imatha kulumikizidwa ndi njira ina ikatha njira yomwe ikukhudzana ndi PIDyo). Adawonjezedwa kale ku kernel
      pidfd_send_signal() call system ndi CLONE_PIDFD mbendera mu clone() kuitana kupeza pidfd ntchito idfd_send_signal(). Kugwiritsa ntchito clone() yokhala ndi mbendera ya CLONE_PIDFD kumatha kubweretsa zovuta ndi oyang'anira ntchito kapena njira yolepheretsera zokumbukira za nsanja ya Android. Pamenepa, kuyitana kwa fork() kapena clone() popanda CLONE_PIDFD kumayambika.

      Kernel 5.3 idayambitsa kuyimba kwadongosolo pidfd_open(), zomwe zimakupatsani mwayi wopeza pidfd yotsimikizika pamachitidwe omwe alipo mongotsatira omwe sanapangidwe poyimba clone() ndi mbendera ya CLONE_PIDFD. Anawonjezeranso chithandizo cha pidfd polling pogwiritsa ntchito poll() ndi epoll(), zomwe zimalola oyang'anira ndondomeko kuti azitha kuyang'anira kuthetsedwa kwa njira zopanda pake popanda kuopa mtundu wamtundu ngati PID ipatsidwa ntchito yatsopano. Njira yodziwitsira kuti njira yolumikizidwa ndi pidfd yatha ndi yofanana ndi kudziwitsa kuti mwana wake watha;

    • Thandizo la makina olembera katundu wawonjezedwa kwa okonza ntchito (Kugwiritsa ntchito clamping), kukulolani kuti muzitsatira mafupipafupi ocheperako kapena ochulukirapo, kutengera ntchito zomwe zikugwira ntchito pa CPU. Makina operekedwawo amafulumizitsa ntchito zomwe zimakhudza mwachindunji luso la wogwiritsa ntchito poyendetsa ntchito izi osachepera kumapeto kwa "kufunsidwa" pafupipafupi. Ntchito zofunika kwambiri zomwe sizimakhudza ntchito ya wogwiritsa ntchito zimayambitsidwa pogwiritsa ntchito malire apamwamba "ololedwa" pafupipafupi. Malire amayikidwa kudzera pa sched_uclamp_util_min ndi sched_uclamp_util_max mumayendedwe a sched_setattr() .
    • Thandizo lowonjezera laukadaulo wowongolera mphamvu Intel Speed ​​​​Select, yopezeka pamaseva osankhidwa okhala ndi ma processor a Intel Xeon. Tekinoloje iyi imakupatsani mwayi wokhazikitsa magwiridwe antchito ndi magawo amagawo osiyanasiyana a CPU cores, omwe amakupatsani mwayi woyika patsogolo ntchito zomwe zimachitidwa pama cores ena, kusiya ntchito pamagulu ena;
    • Njira mu malo ogwiritsa ntchito kupereka kutha kudikirira kwakanthawi kochepa osagwiritsa ntchito malupu pogwiritsa ntchito malangizo a umwait. Langizoli, limodzi ndi malangizo a umonitor ndi tpause, adzaperekedwa mu tchipisi ta Intel "Tremont", ndipo adzalola kukhazikitsidwa kwa kuchedwa komwe kumakhala kogwiritsa ntchito mphamvu komanso sikukhudza magwiridwe antchito a ulusi wina mukamagwiritsa ntchito Hyper Threading;
    • Kwa zomangamanga za RISC-V, chithandizo chamasamba akuluakulu okumbukira awonjezedwa;
    • Makina otsata a kprobes awonjezera kuthekera kochotsa zolozera za kernel ku malo ogwiritsa ntchito, zomwe zitha kugwiritsidwa ntchito, mwachitsanzo, kuwunika zomwe zili muzinthu zomwe zimaperekedwa pama foni amachitidwe. Kukhoza kukhazikitsa macheke pa boot stage nawonso awonjezedwa.
    • Onjezani PREEMPT_RT njira pafayilo yosinthira kuti igwire ntchito munthawi yeniyeni. Khodi yokhayo yothandizira nthawi yeniyeni sichinawonjezeredwe ku kernel, koma maonekedwe a chisankho ndi chizindikiro chabwino kuti epic ya nthawi yayitali. kuphatikiza Zigamba za Realtime-Preempt zili pafupi kutha;
    • Anawonjezera kuyimba kwadongosolo kwa clone3 () ndikukhazikitsa mawonekedwe owonjezera a mawonekedwe a clone (), omwe amalola kufotokoza kuchuluka kwa mbendera;
    • Wothandizira bpf_send_signal() wowonjezera, kulola mapulogalamu a BPF kutumiza ma siginecha kumachitidwe osagwirizana;
    • Pazochitika za perf mu KVM hypervisor chilengedwe, njira yatsopano yowonetsera zochitika yawonjezedwa, kulola woyang'anira kuti adziwe mitundu ya zochitika zomwe zimaloledwa kapena zosaloledwa kuyang'anira mbali ya dongosolo la alendo;
    • Kukhoza kukonza mapulogalamu ndi malupu awonjezedwa ku njira yotsimikizira ntchito ya eBPF ngati kuchitidwa kwa loop kuli kochepa ndipo sikungathe kupitirira malire pa chiwerengero chachikulu cha malangizo;
  • Disk Subsystem, I/O ndi File Systems
    • Dongosolo lamafayilo a XFS tsopano limathandizira bypass yamitundu yambiri (mwachitsanzo, mukamayang'ana ma quotas). Ma ioctls atsopano a BULKSTAT ndi INUMBERS awonjezedwa, kupereka mwayi wopita kuzinthu zomwe zinawonekera mu kope lachisanu la mawonekedwe a FS, monga nthawi ya kubadwa kwa inode komanso kutha kukhazikitsa magawo a BULKSTAT ndi INUMBERS pa gulu lililonse la AG (Magulu Ogawa);
    • mu Ext4 thandizo anawonjezera voids muakalozera (ma block osalumikizidwa).
      Processing yaperekedwa mbendera "i" (yosasinthika) pamafayilo otseguka (kulemba ndikoletsedwa pakachitika ngati mbendera idakhazikitsidwa panthawi yomwe fayilo idatsegulidwa kale);

    • Btrfs imapereka tanthauzo la kukhazikitsa mwachangu kwa crc32c pazomanga zonse;
    • Mu CIFS, code yothandizira smbdirect yachotsedwa ngati chitukuko choyesera. SMB3 idawonjezera kuthekera kogwiritsa ntchito ma cryptographic algorithms mu GCM mode. Anawonjezera njira yatsopano yokwera kuti muchotse magawo amtundu wa ACE (Access Control Entry) zolowera. Konzani magwiridwe antchito a open() kuyimba;
    • Onjezani njira ku F2FS kuti muchepetse otolera zinyalala mukamagwira ntchito yoyang'anira = kulepheretsa. Wowonjezera ioctl kuti achotse midadada kuchokera ku F2FS, kulola kusintha kwa magawo pa ntchentche. Anawonjezera kuthekera koyika fayilo yosinthana mu F2FS kuti ipereke mwachindunji I/O. Thandizo lowonjezera pakusindikiza fayilo ndikugawa midadada ya mafayilo ofanana kwa ogwiritsa ntchito onse;
    • Thandizo lowonjezera la ma asynchronous operation sendmsg() ndi recvmsg() ku mawonekedwe a asynchronous input/output io_uring;
    • Thandizo la kukakamiza pogwiritsa ntchito zstd algorithm ndi kuthekera kotsimikizira zithunzi za FS zomwe zasaina zawonjezeredwa ku fayilo ya UBIFS;
    • Ceph FS tsopano imathandizira zilembo zachitetezo za SELinux zamafayilo;
    • Kwa NFSv4, njira yatsopano yokwera "nconnect =" yakhazikitsidwa, yomwe imatsimikizira kuchuluka kwa maulumikizidwe okhazikitsidwa ndi seva. Magalimoto pakati pa maulumikizidwe awa adzagawidwa pogwiritsa ntchito kusanja katundu. Kuonjezera apo, seva ya NFSv4 tsopano imapanga bukhu /proc/fs/nfsd/makasitomala omwe ali ndi chidziwitso chokhudza makasitomala omwe alipo, kuphatikizapo zambiri za mafayilo omwe atsegula;
  • Virtualization ndi Chitetezo
    • Kernel imaphatikizapo hypervisor ya zida zophatikizidwa Mtengo wa ACRN, zomwe zimalembedwa ndi diso lokonzekera ntchito zenizeni zenizeni komanso kuyenerera kuti zigwiritsidwe ntchito mu machitidwe ovuta kwambiri. ACRN imapereka chiwongolero chochepa, imatsimikizira kutsika kochepa komanso kuyankha kokwanira polumikizana ndi zida. Imathandizira kusinthika kwazinthu za CPU, I/O, ma network subsystem, zithunzi ndi mawu. ACRN ikhoza kugwiritsidwa ntchito kuyendetsa makina angapo akutali m'magawo owongolera amagetsi, ma dashboards, makina azidziwitso zamagalimoto, zida za ogula za IoT ndiukadaulo wina wophatikizidwa;
    • Mu User-mode Linux anawonjezera Mayendedwe a nthawi, omwe amakupatsani mwayi kuti muchepetse kapena kufulumizitsa nthawi pamalo omwe ali ndi UML kuti zikhale zosavuta kukonza zolakwika zokhudzana ndi nthawi. Kuphatikiza apo, parameter yawonjezeredwa
      nthawi-kuyenda-kuyambira, komwe kumalola kuti wotchi yadongosolo iyambike kuchokera pakanthawi kochepa mumtundu wa epoch;

    • Zosankha zatsopano za mzere wa kernel "init_on_alloc" ndi "init_on_free" zawonjezedwa, zikafotokozedwa, zeroing ya malo omwe adagawidwa ndi omasulidwa amathandizidwa (kudzaza ndi zero za malloc ndi zaulere), zomwe zimalola kuti chitetezo chiwonjezeke chifukwa cha zowonjezera zowonjezera;
    • Dalaivala watsopano wawonjezedwa virtio-iommu ndi kukhazikitsidwa kwa chipangizo cha paravirtualized chomwe chimakulolani kutumiza zopempha za IOMMU monga ATTACH, DETACH, MAP ndi UNMAP pamayendedwe a virtio popanda kutsanzira matebulo amasamba okumbukira;
    • Dalaivala watsopano wawonjezedwa virtio-pmem, kuyimira mwayi wopezera zida zosungiramo mapu ku malo adiresi, monga ma NVDIMM;
    • Kukhazikitsa luso lophatikizira makiyi a cryptographic kwa wogwiritsa ntchito kapena malo amtaneti (makiyi amakhala osapezeka kunja kwa malo osankhidwa), komanso kuteteza makiyi pogwiritsa ntchito ma ACL;
    • Ku crypto subsystem anawonjezera kuthandizira kwa algorithm yothamanga kwambiri yopanda cryptographic hashing xxhash, liwiro lomwe limadalira kukumbukira kukumbukira;
  • Network subsystem
    • Anayatsa kukonza ma adilesi a IPv4 mumtundu wa 0.0.0.0/8, omwe poyamba anali osapezeka kuti agwiritsidwe ntchito. Kuyamba kwa subnet iyi alola kugawa ma adilesi ena 16 miliyoni a IPv4;
    • Mu Netfilter kwa nftables anawonjezera kuthandizira njira zowonjezera ma hardware zosefera paketi pogwiritsa ntchito madalaivala owonjezera Flow Block API. Magome onse a malamulo ndi maunyolo onse akhoza kuikidwa pambali pa ma adapter network. Kuyatsa kumachitika pomanga mbendera ya NFT_TABLE_F_HW patebulo. Imathandizira metadata yosavuta ya Layer 3 ndi Layer 4, kuvomereza / kukana zochita, kupanga mapu ndi IP ndi ma doko otumiza / olandila ndi mtundu wa protocol;
    • Zowonjezedwa Thandizo lotsata kugwirizana kwa milatho ya maukonde, lomwe silifuna kugwiritsa ntchito br_netfilter emulating layer;
    • Mu nf_tables anawonjezera kuthandizira gawo la SYNPROXY, lomwe limabwereza magwiridwe antchito ofanana ndi ma iptables, komanso kuthekera koyang'ana malamulo pazosankha zapayekha pamutu wa IPv4 kumayendetsedwanso;
    • Anawonjezera kuthekera kophatikizira mapulogalamu a BPF ku mafoni a setsockopt() ndi getsockopt() system, omwe, mwachitsanzo, amakulolani kuti muphatikize zowongolera zanu pazoyimba izi. Kuonjezera apo, malo oyitanitsa atsopano (mbeza) yawonjezedwa, yomwe mungathe kukonzekera kuyitana ku pulogalamu ya BPF kamodzi pa nthawi iliyonse ya RTT (nthawi yozungulira, nthawi ya ping);
    • Kwa IPv4 ndi IPv6 anawonjezera njira yatsopano yosungiramo data ya nexthop yomwe cholinga chake ndi kukulitsa kuchuluka kwa matebulo oyenda. Mayesero anasonyeza kuti pogwiritsira ntchito dongosolo latsopanoli, njira za 743 zinayikidwa mu kernel mu masekondi 4.3 okha;
    • Za Bluetooth zakhazikitsidwa magwiridwe antchito ofunikira kuthandizira LE ping;
  • Zida
    • Zowonjezedwa kuthandizira mapurosesa a kampani a x86-compatible Zhaoxin, yopangidwa chifukwa cha ntchito yogwirizana pakati pa VIA Technologies ndi Municipality ya Shanghai. Banja la ZX CPU limamangidwa pamapangidwe a x86-64 Yesaya, kupitiliza chitukuko chaukadaulo VIA Centaur;
    • Dongosolo la DRM (Direct Rendering Manager) komanso madalaivala a zithunzi za amdgpu ndi i915, awonjezera thandizo pakuyika, kukonza ndi kutumiza metadata ya HDR (high dynamic range) kudzera pa doko la HDMI, kulola kugwiritsa ntchito mapanelo a HDR ndi zowonera zomwe zimatha. kuwonetsa mitundu yowala yowonjezereka;
    • Dalaivala wa amdgpu wawonjezera chithandizo choyambirira cha AMD NAVI GPU (RX5700), chomwe chimaphatikizapo dalaivala woyambira, khodi yolumikizirana pazenera (DCN2), GFX ndi compute support (GFX10),
      SDMA 5 (System DMA0), kasamalidwe ka mphamvu ndi ma encoder/decoder multimedia (VCN2). amdgpu imathandizanso kuthandizira makhadi ozikidwa pa Vega12 ndi Vega20 GPUs, zomwe zowonjezera kukumbukira ndi mphamvu zowongolera mphamvu zawonjezedwa;

    • Thandizo lowonjezera la makhadi ozikidwa pa VegaM GPUs kwa oyendetsa amdkfd (wa ma GPU a discrete, monga Fiji, Tonga, Polaris);
    • Mu dalaivala wa DRM wa makadi avidiyo a Intel a tchipisi ta Iceland zakhazikitsidwa njira yatsopano yowongolera magawo ambiri a gamma. Adawonjezera kuthekera kotulutsa kudzera pa DisplayPort mumtundu wa YCbCr4:2:0. Firmware yatsopano yawonjezedwa GuC za SKL, BXT, KBL, GLK ndi ICL. Kutha kuzimitsa mphamvu ya skrini mumayendedwe asynchronous kwakhazikitsidwa. Zowonjezedwa kuthandizira kupulumutsa ndi kubwezeretsanso mawonekedwe a Ironlake (gen5) ndi gen4 (Broadwater - Cantiga) chips, zomwe zimakulolani kuti mubwezeretse dziko la GPU kuchokera kumalo ogwiritsira ntchito pamene mukusuntha kuchokera ku ntchito imodzi kupita ku ina;
    • Dalaivala wa Nouveau amapereka chidziwitso cha chipset cha NVIDIA Turing TU116;
    • Kuthekera kwa dalaivala wa DRM/KMS wa ma ARM Komeda screen accelerators (Mali D71) awonjezedwa, kuthandizira pakukulitsa, kugawanika/kuphatikiza zigawo, kuzungulira, kulemba kochedwetsa, AFBC, SMMU ndi mitundu ya encoding yamitundu Y0L2, P010, YUV420_8/10BIT ili zawonjezedwa;
    • Dalaivala wa MSM akuwonjezera chithandizo cha mndandanda wa A540 GPU Adreno womwe umagwiritsidwa ntchito mu mapurosesa a Qualcomm, komanso kuthandizira wolamulira wa MSM8998 DSI wa Snapdragon 835;
    • Madalaivala owonjezera a mapanelo a LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 ndi VXT VL050-8048NT-C01;

    • Awonjezedwa driver kuti azithandizira zida zowongolera ma decoding
      makanema omwe amapezeka mu Amlogic Meson SoC;

    • Mu v3d driver (ya Broadcom Video Core V GPU yomwe imagwiritsidwa ntchito mu Raspberry Pi) idawonekera thandizo kutumiza ma compute shaders;
    • Awonjezedwa dalaivala wamakiyibodi a SPI ndi ma trackpad omwe amagwiritsidwa ntchito mumitundu yamakono ya Apple MacBook ndi laputopu ya MacBookPro;
    • Zowonjezedwa chitetezo chowonjezera cha mafoni a ioctl okhudzana ndi floppy driver, ndipo dalaivala mwiniwakeyo amalembedwa ngati wosasamalidwa
      ("amasiye"), zomwe zikutanthauza kutha kwa kuyesa kwake. Dalaivala amasungidwabe mu kernel, koma ntchito yake yolondola sikutsimikiziridwa. Dalaivala amaonedwa kuti ndi yachikale, chifukwa n'zovuta kupeza zida zogwirira ntchito zoyesera - ma drive onse akunja omwe alipo, monga lamulo, amagwiritsa ntchito mawonekedwe a USB.

    • Awonjezedwa cpufreq dalaivala wa matabwa a Raspberry Pi, omwe amakupatsani mwayi wowongolera kusintha kwa ma processor pafupipafupi;
    • Thandizo lowonjezera la ARM SoC Mediatek mt8183 yatsopano (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) ndi Amlogic G12B (4x Cortex-A73tex 2x Cortex +- A53 ), komanso matabwa:
      • Purism Librem5,
      • Kuthamanga kwa BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • 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,
      • Chithunzi cha LS1021A-TSN.

Nthawi yomweyo, Latin American Free Software Foundation anapanga
njira kernel yaulere kwathunthu 5.3 - Linux-libre 5.3-gnu, kuchotsedwa kwa firmware ndi zinthu zoyendetsa galimoto zomwe zili ndi zigawo zopanda ufulu kapena zigawo za code, zomwe zimakhala zochepa ndi wopanga. Pakutulutsa kwatsopano, kutsitsa kwa blob kwayimitsidwa mu qcom, hdcp drm, allegro-dvt ndi madalaivala a meson-vdec.
Ma code oyeretsera ma blob osinthidwa mu madalaivala ndi ma subsystems amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, dalaivala wamawu a skylake, komanso zolemba za microcode.

Source: opennet.ru

Kuwonjezera ndemanga