<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.17 合并窗口第一部分!

          共 3747字,需瀏覽 8分鐘

           ·

          2021-11-23 20:11

          關注了就能看到更多這么棒的文章哦~

          5.16 Merge window, part 1

          By Jonathan Corbet
          November 4, 2021
          DeepL assisted translation
          https://lwn.net/Articles/874683/

          截止到撰寫此文的時候,Linus Torvalds 已經為 5.16 版本內核而向內核合入了 6800 個 non-merge changesets。這個數量估計占了個合并窗口中總共會進入的 patchset 數量的一半以上,所以現(xiàn)在是一個好時機來了解到目前為止已經合入了哪些功能。其中包括了許多重大改動以及一些內核內部代碼的大規(guī)模重構,但相對來說,多數都不算是突破性的新功能。

          在 5.16 合并窗口的前半部分拉出的變化包括。

          Architecture-specific

          • 現(xiàn)在支持了 Arm 8.6 timer extension 擴展。

          • MIPS 系統(tǒng)新增了一個 BPF 虛擬機要用的 JIT (just-in-time)編譯器。

          • KFENCE 現(xiàn)在在 PA-RISC 機器上也支持了。

          • 在 PA-RISC 機器上點擊 TOC 按鈕("transfer of control,控制權轉移")的話會使內核進入 debugger。

          • RISC-V 現(xiàn)在支持了 KVM 虛擬化,這個改動的耗時比開發(fā)者預計的要長。

          • 內核已經支持了英特爾的高級矩陣擴展(AMX,Advanced Matrix Extension)功能。這一點得到了廣泛討論,并對現(xiàn)有的浮點支持代碼進行了重大重構。

          Core kernel

          • futex_waitv()系統(tǒng)調用(https://lwn.net/Articles/866112/?)已經合并。

          • CPU 調度器支持了 "clusters" 的概念,這是一種硬件連接方式,多個內核共享同一個二級緩存。能支持 cluster 的調度器會盡力把任務分配給系統(tǒng)的各個 cluster,來平衡整個機器上的 cache 的工作壓力。

          • tracing 機制的 tracefs 接口現(xiàn)在支持設置 owner 和 group 的權限了;這個功能可以用來僅允許一個特定的 group 才能使用 tracing 功能。不過,"other" 的權限 bit 還是不能設置,也就無法允許所有人訪問。

          • 像往常一樣,有一大堆 BPF 的改動。新增 bpf_trace_vprintk() helper 可以輸出信息而不受 bpf_trace_printk()的三個參數的限制。新增了從 BPF 調用 loadable module 中的內核函數的支持。增加了一個新的 bloom-filter map 類型。非特權用戶的 BPF 現(xiàn)在被默認禁用。還有一份新的文檔描述了各種 BPF 組件的 license 授權以及對用戶的要求。

          Filesystems and block I/O

          • block layer 繼續(xù)進行了一系列性能優(yōu)化,從而顯著提高了每個 cpu core 的操作速率(operation rates)。

          • 現(xiàn)在支持 multi-actuator disk,也就是多執(zhí)行器(rotating)磁盤,可以同時訪問多個扇區(qū)(sector)。相關的 commit 記錄了這些驅動器的 sysfs 接口。

          • 新增了一個 ioctl() 命令 (CDROM_TIMED_MEDIA_CHANGE),用于檢測 CDROM 驅動器中的光盤發(fā)生變化的 event。可見,人們仍然在使用 CDROM 驅動器……

          • EROFS 文件系統(tǒng)增加了簡單的多設備(multiple-device)支持。

          Hardware support

          • Media。OmniVision OV13B10 傳感器,Hynix Hi-846 傳感器,以及 R-Car 圖像信號處理器。

          • Miscellaneous。Microchip 外部中斷控制器、蘋果 mailbox 控制器、Ingenic JZ47xx SoCs SPI 控制器、Cadence XSPI 控制器、Maxim MAX6620 風扇控制器、Intel Keem Bay OCS 橢圓曲線加密加速器、ACPI WMAA 背光接口、Intel ISHTP eclite 嵌入式控制器、Barco P50 GPIO 和三星 S6D27A1 DPI panel (顯示屏)。

          • 網絡。Realtek RTL8365MB-VC Ethernet switches,Realtek 802.11ax 無線芯片,Asix AX88796C-SPI 以太網適配器,以及 Mellanox MSN4800-XX line cards。

          Networking

          • 新增一個用戶可設置的 socket option,名為 SO_RESERVE_MEM。其作用是為相關的 socket 永久 reserve 一些內核內存。這反過來又能加速網絡操作,特別是當系統(tǒng)的內存非常緊張的時候。注意,這個功能只有在使用 memory control group 時才可用,這里 reserve 的內存將會從該組的份額中扣除。

          • In-situ Operations(原地操作)、Administration(管理)和 Maintenance(維護),也就是 IOAM 的支持得到了加強,支持將 IOAM 數據封裝到傳輸中的數據包內。commit 中有一點進一步的信息。

          • ethtool netlink API 獲得了控制 transceiver module 的能力;更多信息請參見相關 commits。

          • netfilter 子系統(tǒng)現(xiàn)在可以在出口時(egress)對數據包進行分類,更多信息參見相關 commit。

          • 新增了對自動組播隧道(Automatic Multicast Tunneling,RFC 7450)的支持。

          • 有兩個新的 sysctl 開關來控制當網絡設備失去連接時如何處理 ARP cache。arp_evict_nocarrier 表示當一個接口失去底層連接的時候是否應該刪除 ARP cache 中的條目,而 ndisc_evict_nocarrier 則是類似的針對 neighbor discovery table 進行的配置。兩者都是為了在 WiFi 接口在同一網絡的多個接入點(access points, AP)之間移動時保留 cache 條目而設計的。相關 commits 包含更多信息。

          Security-related

          • 大部分關于對 memcpy() 進行嚴格邊界檢查(bounds checking)的相關改動都已經被合并了。不過在內核中啟用邊界檢查的 patch 還沒有被合并,需要等待一些剩余問題得到 fix。

          • io_uring 子系統(tǒng)已經獲得了 audit 支持。

          • SELinux 和 Smack security modules 現(xiàn)在可以對 io_uring 操作也施加安全策略了。

          • audit 會把傳遞給 openat2()的 open_how 結構的內容記錄下來。

          • 完整性測量架構(IMA,integrity measurement architecture)現(xiàn)在可以根據文件的 group ID 和訪問它們的 user 來選擇應用哪些規(guī)則。

          • seccomp() 線程針對 Spectre 漏洞的改善工作的默認做法已經改變了,導致這里應用的改善措施變少了,性能也就相應地提高了。請閱讀相關 commit 來了解這個改動背后的原因。簡單地說,額外的改善措施并沒有真正獲得更高的安全性。

          Internal kernel changes

          • 在過去的幾個月里,folio patch set 一直是很多人熱議的話題,它是 5.16 版本中第一個被合并進來的功能。這項工作增加了一種 "folio" 類型,來表示那些已知不是 tail pages 的 page,然后重新設計了內存管理部分的內部 API 都來使用 folio 類型。這樣就得到了更好的類型清晰度(type clarity),甚至是有小幅性能提升,以及給未來找了很多工作要做。

          • 新增了一個內部函數,cc_platform_has(),它為內核代碼提供了一個通用接口,用來查詢機密計算(confidential-computing)功能是否存在。它的第一個使用場景就是取代了 mem_encrypt_active() 來檢查內存加密(memory encryption)是否打開了。

          按照通常的兩周時間表來說,5.16 合并窗口可望在 11 月 14 日關閉。到時候我們將帶來為了下一個內核版本所做的其余修改的摘要總結。

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

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

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



          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  一级真人毛片 | 欧美动态视频 | 青青激情| 丝袜脚交一区二区 | 五月亚洲精品成人片一区 |