<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LWN:5.18合并窗口第一部分!

          共 4092字,需瀏覽 9分鐘

           ·

          2022-04-09 16:27

          關(guān)注了就能看到更多這么棒的文章哦~

          5.18 Merge window, part 1

          By Jonathan Corbet
          March 25, 2022
          DeepL assisted translation
          https://lwn.net/Articles/888736/

          截至目前,在 5.18 開(kāi)發(fā)周期中已有 4127 個(gè) non-merging changeset 進(jìn)入了 mainline。這個(gè)速度比起之前的合并窗口來(lái)說(shuō)相對(duì)較慢,但其中還是有了很多的改動(dòng)。請(qǐng)繼續(xù)閱讀下去,了解 5.18 合并窗口的前半部分中最重要改動(dòng)的摘要。

          Architecture-specific

          • 32 位 Arm 系統(tǒng)已支持將中斷調(diào)用棧(interrupt stack)以及虛擬映射的內(nèi)核棧(virtually-mapped kernel stack)分隔開(kāi)來(lái)。

          • 刪除了對(duì)沒(méi)有內(nèi)存管理單元(MMU)的舊版 Arm 系統(tǒng)(ARMv4 和 ARMv5)的支持。不過(guò),對(duì)同樣沒(méi)有 MMU 的 ARMv7-M 系統(tǒng)仍然保持支持。

          • arm64 架構(gòu)支持新增 "QARMA3" 指針驗(yàn)證算法(pointer-authentication algorithm)。Arm 的 QARMA 的這個(gè)變種顯然更加快速,同時(shí)仍有足夠的安全性。

          • Arm64 系統(tǒng)可以使用 GCC 12 版本編譯器來(lái)支持影子堆棧(shadow-stack)。

          • PA-RISC 架構(gòu)獲得了最基本的 vDSO 支持,這反過(guò)來(lái)又使系統(tǒng)可以第一次支持運(yùn)行時(shí)使用具有不可執(zhí)行權(quán)限的堆棧(non-executable stack)運(yùn)行。這個(gè) patch 的最初版本是在 2006 年發(fā)布的,似乎有些功能總是需要比其他功能要花費(fèi)更長(zhǎng)時(shí)間才能進(jìn)入 mainline。

          • 加入了英特爾 "hardware feedback interface" 的支持。這個(gè)機(jī)制允許硬件來(lái)告知內(nèi)核當(dāng)前系統(tǒng)中每個(gè) CPU 的當(dāng)前性能和能效比。這些能力可能會(huì)隨著時(shí)間的推移而改變,例如因?yàn)榘l(fā)熱過(guò)高而進(jìn)行的限制。文檔 patch 里有更多一些的信息。

          • 移除了 nds32 架構(gòu)的支持。根據(jù)合并時(shí)的更新日志所說(shuō):

            硬件仍在使用,代碼也很合理,但針對(duì) mainline 的移植不再積極,因?yàn)樗械氖O掠脩舳紤?yīng)該是在運(yùn)行供應(yīng)商的內(nèi)核(vendor kernel),而這些內(nèi)核應(yīng)該永遠(yuǎn)不會(huì)再更新到后續(xù)版本上了。

          Core kernel

          • io_uring 子系統(tǒng)已經(jīng)有了一些改進(jìn)。新增 IORING_SETUP_SUBMIT_ALL 選項(xiàng)會(huì)提交一整個(gè)批次的 request,哪怕中途遇到錯(cuò)誤也一樣。ring 本身對(duì)應(yīng)文件描述符跟 ring 一起注冊(cè),為線程型應(yīng)用程序(threaded application)提升了性能。細(xì)節(jié)請(qǐng)看相關(guān)的 changelog。新增的 IORING_OP_MSG_RING 操作允許一個(gè) ring 向另一個(gè) ring 發(fā)出 signal。此外,現(xiàn)在可以直接從 ring 中對(duì) socket 進(jìn)行 NAPI busy poll 輪詢了。

          • 針對(duì) alpha 和 m68k 架構(gòu)(最后兩個(gè)仍在使用 a.out 的架構(gòu)),不再默認(rèn)編譯生成 a.out 可執(zhí)行格式。a.out 代碼實(shí)際上還沒(méi)有被刪除,但這可能很快會(huì)進(jìn)行。

          • 合并了對(duì) restartable-sequence API 的一些調(diào)整,以便在 GNU C Library 中提供支持。

          • DAMON operation schemes(DAMOS)機(jī)制為用戶空間提供了對(duì)內(nèi)存管理相關(guān)操作(尤其是 page reclaim)的更多控制。

          • tracing 系統(tǒng)現(xiàn)在支持 "user events",這基本上就是 user-space 應(yīng)用程序中的 dynamic tracepoint。該功能在合并后的更新日志中的介紹是:

            用戶空間可以向內(nèi)核注冊(cè)一個(gè)事件(event),描述該 event 的格式。然后,它將在一個(gè) page mapping 中收到一個(gè) byte 用來(lái)對(duì)照檢查。然后,有特權(quán)的 task 可以跟對(duì)待其他 event 一樣來(lái)啟用該事件,這將把映射里的字節(jié)改為 "true",告訴用戶空間的應(yīng)用程序開(kāi)始將該事件寫入 tracing buffer 中。

            更多信息請(qǐng)參見(jiàn)添加文檔的 commit 以及一個(gè)示例程序。

          Filesystems and block I/O

          • 現(xiàn)在可以在 sysfs 中查看 block request queue 里的 inline-encryption 能力,詳情參見(jiàn) changelog。

          • 對(duì)于加密文件來(lái)說(shuō),通常無(wú)法進(jìn)行 direct I/O,因?yàn)闊o(wú)論如何,數(shù)據(jù)必須通過(guò)內(nèi)核 buffer 來(lái)進(jìn)行加密或解密。但是,如果硬件做了加密工作,情況就不同了。在 5.18 中,如果使用 inline encryption,那么用 fscrypt 加密的文件可以用 direct I/O 來(lái)訪問(wèn)。文檔 patch 中包含了更多的信息。

          • F2FS 文件系統(tǒng)已經(jīng)支持了 ID-mapped mounts。

          • 如果 NFS 被啟用了,那么對(duì) NFSv3 的支持將始終內(nèi)置在 NFS server 中。這樣做的目的是使 NFSv3 成為 NFS 的基本、"始終支持" 的版本,從而為最終取消 NFSv2 支持來(lái)做好準(zhǔn)備。

          • Btrfs 新增兩個(gè) ioctl() 操作(BTRFS_IOC_ENCODED_READ 和 BTRFS_IOC_ENCODED_WRITE),允許直接對(duì)于一個(gè)文件的 extents 進(jìn)行讀取和寫入。這些命令的主要用途是支持更加新的、更加有效率的發(fā)送和接收操作。

          Hardware support

          • 硬件監(jiān)控?華碩 ACPI 嵌入式控制器、Vicor PLI1209BC 數(shù)字電源監(jiān)督器、Aquacomputer Farbwerk 360 RGB 控制器,以及德州儀器 TMP464 和 TMP468 溫度傳感器。

          • 媒體?Microchip CSI2 demux 控制器,Hynix Hi-847 傳感器,OmniVision OV08D10 和 OG01A1B 傳感器,以及 Intersil ISL7998x 視頻解碼器。

          • 雜項(xiàng)?高通公司 MSM 電源管理器控制器、Xilinx ZynqMP SHA3 加速器、TI TPS6286x 電源穩(wěn)壓器、Richtek RT5190A 電源管理 IC、Sunplus SP7021 SPI 控制器、LiteX MMC 主機(jī)控制器和 Tesla 全自驅(qū)動(dòng)時(shí)鐘控制器。

          • 聲音?德州儀器 TAS5805M 揚(yáng)聲器放大器,AMD PCI 音頻協(xié)處理器,以及 Awinic AW8738 音頻放大器。

          Miscellaneous

          • 新增一些比較重要的文檔,包括一些研究人員研究?jī)?nèi)核社區(qū)的指南,readahead 代碼的概述,如何報(bào)告出 regression 問(wèn)題,以及開(kāi)發(fā)人員應(yīng)該如何處理 regression。

          Security-related

          • 新增一個(gè) kernel keyring 名為 machine;它包含由 shim bootloader 接口所實(shí)現(xiàn)的機(jī)器所有者密鑰(machine-owner keys)。machine keyring 中的密鑰在內(nèi)核中是可以被信任的,用來(lái)用來(lái)對(duì)初始啟動(dòng)過(guò)程后之后要使用到的部件(如 module 或 integrity 數(shù)據(jù))進(jìn)行簽署(sign)。

          • 移除了 asymmetric TPM-backed private keys 的支持。這個(gè)功能最初是在 3.7 版本添加的,依賴于一個(gè)已經(jīng)廢棄了的(obsolete) TPM 版本,并且有一些自己的安全問(wèn)題;希望沒(méi)有人在使用它。

          • 隨機(jī)數(shù)生成器也做了大量工作。/dev/random 和/dev/urandom 之間的差異已經(jīng)被移除(盡管在報(bào)告了一個(gè) regression 問(wèn)題之后,不得不 revert 一些 urandom 的改動(dòng))。在 virtual machine 進(jìn)行 fork 時(shí),新增了一個(gè)機(jī)制來(lái)避免 random-stream 被復(fù)現(xiàn)?,F(xiàn)在內(nèi)部開(kāi)始使用 BLAKE2s 算法。還有更多改動(dòng),細(xì)節(jié)請(qǐng)參見(jiàn)合并后的 changelog 以及?https://www.zx2c4.com/projects/linux-rng-5.17-5.18/?。

          • 內(nèi)核現(xiàn)在為 size_t 值提供了 saturating arithmetic helpers;可以用來(lái)加強(qiáng)代碼以防止整數(shù)溢出的錯(cuò)誤。更多信息請(qǐng)參見(jiàn)相關(guān)提交。

          Internal kernel changes

          • 第一部分來(lái)自?fast kernel-headers 代碼樹(shù)里的工作已經(jīng)合入,主要是對(duì) scheduler header files 進(jìn)行了大量的修改調(diào)整。

          • 去年發(fā)現(xiàn)的未被使用的 block-layer congestion-tracking 代碼已經(jīng)被刪除。

          • 內(nèi)存管理代碼進(jìn)行了改進(jìn),添加了 remote per-CPU page list draining。

          • 合并了更多 folio patch,這組補(bǔ)丁將內(nèi)部的內(nèi)存管理函數(shù)(包括 get_user_pages() 的各個(gè)變種)轉(zhuǎn)換為使用 folio,并在 readahead 代碼中實(shí)現(xiàn)了創(chuàng)建 large folio。第二組是將一些 address_space_operations 轉(zhuǎn)換為 folio。

          • set_fs() 基礎(chǔ)功能終于被完全移除。

          快速檢查可以看到 linux-next 目前包含了將近 9000 個(gè)尚未被拉入 mainline 的 commit,所以看起來(lái) 5.18 內(nèi)核將會(huì)有更多的東西進(jìn)來(lái)。合并窗口預(yù)計(jì)將持續(xù)到 4 月 3 日;在那之后不久,我們將對(duì)這個(gè)版本中剩余部分工作進(jìn)行總結(jié)。

          全文完
          LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。

          歡迎分享、轉(zhuǎn)載及基于現(xiàn)有協(xié)議再創(chuàng)作~

          長(zhǎng)按下面二維碼關(guān)注,關(guān)注 LWN 深度文章以及開(kāi)源社區(qū)的各種新近言論~



          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人网在线观看 | 影音先锋色av | 操天天| 婬乱无码AV丰满熟妇 | 欧美高清V |