Linus Torvalds 對 Linux 6.9 的某些 Bcachefs 代碼不滿意


自從Bcachefs文件系統被納入Linux6.7內核的上遊版本以來,它就一直保持著良好的運行狀態。但今天,Bcachefs的功能更新被提交到Linux6.9合並窗口,而LinusTorvalds對其中的一些代碼並不滿意。

為 Linux 6.9 提交的 Bcachefs 代碼包括一些前期準備工作,如為子卷走讀提供用戶空間界面、改進目錄結構檢查、改進日志流水線以提高性能、改進丟棄路徑以提高效率,以及其他優化。維護者肯特-奧弗斯特裡特(Kent Overstreet)將針對 Linux 6.9 的 Bcachefs 改動的拉取請求總結為:

針對 Linux 6.9 的 Bcachefs 更新9 的 bcachefs 更新

- 子卷的子 btree;這是為走子卷提供用戶空間接口所必需的,稍後會推出

- 對目錄結構檢查的大量改進

- 改進日志流水線,顯著提高高深度寫入工作負載的性能

- 改進丟棄路徑:丟棄路徑更加高效,不再不必要地刷新日志

- 緩沖寫入路徑現在可以避免占用節點鎖

- 調出各種庫代碼供 XFS 使用:time stats、mean_and_variance、darray、eytzinger、thread_with_file

- 新的毫米助手:memalloc_flags_{save|restore}

- mempool 現在可以使用 kvmalloc mempool

但讓 Linus Torvalds 感到不解的是,有些補丁將 Bcachefs 代碼中的某些元素移到一些庫類型的代碼中,這樣其他文件系統就可以很容易地重復使用這些代碼--XFS 就是對可能重復使用某些 Bcachefs 功能感興趣的文件系統。

Linus Torvalds響應 Bcachefs 的拉取請求:

,"stdio_redirect_printf()"和 darray_char 隻是可怕的接口,沒有任何解釋。這些接口太惡心。這些接口太惡心。

,把它放在你自己的代碼裡,不要試圖把它變成一個通用的庫。

,如果你**把它變成一個庫,它需要

(a) 解釋得更清楚

(b) 有更合理的命名,減少惡心和完全無意義的接口("DARRAY()")。

但最讓人頭疼的還是那些瘋狂的數學。

該死的,我們很久以前就討論過那些愚蠢的"均值和方差"垃圾。

你沒有解釋為什麼它不能使用簡單得多的 MAD(中位數絕對偏差)而使用方差。

這個錯誤的決定直接導致毫無意義地使用過於復雜的 128 位數學。

當時我就說它設計過度,據我所知,除一些細微的類型名稱細節外,絕對沒有任何變化。

但現在你卻試圖將這些垃圾代碼作為通用庫代碼推給其他人使用,這立刻就意味著我**介意過度工程化的接口。

在其他方面,time_stats 看起來就像一個有名稱和用途的正常接口,但使用可怕的基礎架構後,它就失效。

在 Overstreet 闡述自己的觀點後,Torvalds補充道

方差值是不同的,但 MAD 和標準偏差之間的區別基本上隻是一個常數因子(不同的分佈會有所不同,但那又怎樣?)

那麼,為什麼一個常數因子會對指數加權產生任何影響呢?

總之,請把你的代碼放在 bcachefs 中。

也許 xfs 也想拷貝你的代碼。我不在乎,這看起來很蠢,但這是文件系統的選擇。

但如果我們要讓它成為一個通用的內核庫,它就必須理智。不能為一個隨機的統計元素,就讓人們做 64 位的平方根和 128 位的除法。

因此,從目前的情況來看,Linus Torvalds 並沒有接受這個針對 Linux 6.9 內核的 Bcachefs 拉取請求,原因是提議的通用庫代碼。我們將拭目以待,看看未來幾天是否會有新的拉取請求,放棄這些補丁或以其他方式重新修改,以滿足 Linux 創建者的要求。


相關推薦

2024-03-11

LinusTorvalds今天通過郵件宣佈LinuxKernel6.8正式版已經發佈,這是Linux內核的最新穩定版本,提供不少新功能、改進和優化。6.8 版的一些亮點功能包括:LAM / 線性地址屏蔽的虛擬化支持KVM 的來賓優先內存支持更新 Bcachefs 文件系統的

2024-04-22

LinusTorvalds對硬件錯誤、“邪惡的”開發者和搞笑的人工智能炒作發表自己的看法。幾天前,由Linux基金會主辦的北美開源峰會(OpenSourceSummitNorthAmerica)在華盛頓西雅圖閉幕。會上,Linux 之父 Linus Torvalds 與其好友、Verizon 開源項

2022-06-23

在工作瞭30年後,Linux之父LinusTorvalds依然對這款開源操作操作和未來的創新前景充滿瞭熱情。時至今日,Linux已經成為雲計算、邊緣、嵌入式和物聯網等技術的重要基礎,為全球數十億臺設備提供著底層支撐。而從一個開發的貢

2022-09-28

大會上的開幕致辭中,公司CEO帕特·基辛格向Linux之父LinusTorvalds頒發首個終身創新成就獎。在演講快要結束時,PatGelsinger將LinusTorvalds邀請到臺上。作為一名芬蘭裔美國軟件工程師,他於31年前開創Linux內核,現已被各大Linux發行版

2022-10-18

個候選發佈(rc1)版本的發佈,Linux內核項目主心骨LinusTorvalds也呼籲廣大開發人員能夠在這輪開發周期內盡早添加代碼。他表示:“在我收拾完自己的機器並趕上合並窗口之後,還是對各種被拖延的查詢請求感到有些沮喪”。(

2022-08-29

LinusTorvalds剛剛發佈即將發佈的Linux6.0內核的第三周候選版本。正式版的Linux6.0將在10月初發佈,正如Linux6.0功能概述中指出的那樣,它包含許多令人興奮的改進。在新的AMD和Intel產品支持方面有很多工作,還有其他各種支持的增加

2022-09-16

峰會LinuxPlumbersConference(LPC)上,對萊納斯·托瓦茲(LinusTorvalds)進行采訪。尼克爾斯和托瓦茲是幾十年的老朋友,隻是受疫情影響兩人在最近幾年都沒有碰過面。本月在愛爾蘭都柏林召開的 LPC 上,尼克爾斯終於有機會進行面

2024-01-31

風風火火的Linux之父,LinusTorvalds,他又躍入公眾的視線。“打開方式”依舊是熟悉的配方——罵人。我們先來看下Linus怒懟的名場面:你的代碼就是垃圾。我要把你丟進垃圾郵件一周。而這一次的“受害者”,是來自Google的一位

2023-08-02

頓的問題依然時有發生。如何徹底解決?Linux創建者Linus Torvalds的建議是直接禁用fTPM功能,這樣就能斬草除根。禁用fTPM的話,顯然會對一些安全相關的功能造成負面影響,但是綜合考慮來看,Linus Torvalds認為這依然是個好選擇,

2022-08-01

最新發佈的Linux5.19比以往有更多的蘋果元素,LinusTorvalds是使用M2MacBookAir運行移植到AppleSilicon的Linux版本來發佈該最新版本的。Linux和其他操作系統一樣會定期更新,Linux背後的推動者LinusTorvalds最近發佈5.19版本的操作系統,使不同

2022-08-01

LinusTorvalds剛剛發佈LinuxKernel5.19穩定版。值得註意的是,這是他首次在運行AArch64M1芯片的蘋果MacBook筆記本上發佈該內核。Linux Kernel 5.19 引入大量新功能、新特性,在對新硬件方面添加對 LoongArch CPU 和 Zen 4 CPU 的支持,繼續改善對 A

2024-02-26

電腦的卡死/恢復問題。此外還有一些Bcachefs 修復。Linus Torvalds 在6.8-rc6 公告中寫道"上周我曾說過,我希望事情能平靜一些。從技術上講,事情確實平靜一些,rc6 比 rc5 小一些。因此,這可能最終會成為那些獲得 rc8 的版本之

2022-10-10

個LinuxKernel版本延期,那麼不要太驚訝,因為Linux之父LinusTorvalds的電腦壞。出問題的不是AMD線程撕裂者處理器,而是ECC內存。Torvalds說,自己已經裝完機穩定運行2.5年,可是最近卻頻繁遭遇機器不穩定甚至編譯器損壞的情況。目

2022-07-18

LinusTorvalds剛剛發佈Linux5.19-rc7,這算得上繁忙的一周,因為針對Retbleed漏洞的安全緩解措施不僅給用戶帶來CPU開銷性能的影響,而且給內核開發和測試過程帶來混亂。除Retbleed需要對許多文件進行修改,並且是近來較大的緩解措施