论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 107阅读
  • 0回复

[业界新闻]Linus Torvalds 对 Linux 6.9 的某些 Bcachefs 代码不满意 [复制链接]

上一主题 下一主题
 

发帖
6662
今日发帖
最后登录
2024-11-09
只看楼主 倒序阅读 使用道具 楼主  发表于: 2024-03-14 12:09:01
自从Bcachefs文件系统被纳入 Linux 6.7 内核的上游版本以来,它就一直保持着良好的运行状态。但今天,Bcachefs 的功能更新被提交到 Linux 6.9 合并窗口,而 Linus Torvalds 对其中的一些代码并不满意。 CQ"5bnR  
{UvZ  
为 Linux 6.9 提交的 Bcachefs 代码包括一些前期准备工作,如为子卷走读提供用户空间界面、改进目录结构检查、改进日志流水线以提高性能、改进丢弃路径以提高效率,以及其他优化。维护者肯特-奥弗斯特里特(Kent Overstreet)将针对 Linux 6.9 的 Bcachefs 改动的拉取请求总结为: KZsSTB6J  
E{(7]Wri  
    针对 Linux 6.9 的 Bcachefs 更新9 的 bcachefs 更新 o%RyE]pw,  
 G\ru%  
    - 子卷的子 btree;这是为走子卷提供用户空间接口所必需的,稍后会推出 Ycn*aR2  
J XbG|L  
    - 对目录结构检查的大量改进 > ~J&i3  
`>g: :  
    - 改进了日志流水线,显著提高了高深度写入工作负载的性能 3{]csZvW  
m80QMosp  
    - 改进了丢弃路径:丢弃路径更加高效,不再不必要地刷新日志 D)K/zh)  
= 0Z}s  
    - 缓冲写入路径现在可以避免占用节点锁 :>\i  
B14z<x}Q  
    - 调出各种库代码供 XFS 使用:time stats、mean_and_variance、darray、eytzinger、thread_with_file Go= MG:`  
bmGIxBRq  
    - 新的毫米助手:memalloc_flags_{save|restore} "2o)1G  
ZZX|MA!  
    - mempool 现在可以使用 kvmalloc mempool >E^sZmY[f-  
d+\o>x|Y!Y  
但让 Linus Torvalds 感到不解的是,有些补丁将 Bcachefs 代码中的某些元素移到了一些库类型的代码中,这样其他文件系统就可以很容易地重复使用这些代码了--XFS 就是对可能重复使用某些 Bcachefs 功能感兴趣的文件系统。 \L<Hy)l  
DrC4oxS 1  
Linus Torvalds响应了 Bcachefs 的拉取请求: dE%rQE7'  
@9~6+BZOq  
    ,"stdio_redirect_printf"和 darray_char 只是可怕的接口,没有任何解释。这些接口太恶心了。这些接口太恶心了。  wC}anq>>  
%7x x"$P:R  
    ,把它放在你自己的代码里,不要试图把它变成一个通用的库。 |~Z.l  
Rr{mD#+  
    ,如果你**把它变成一个库,它需要 %-/[.DYt  
m6a`OkP  
    (a) 解释得更清楚 .hzzoLI2  
|a*VoMZ  
    (b) 有更合理的命名,减少恶心和完全无意义的接口("DARRAY()")。 Pv|g.hH9m  
&CpxD."8x  
    但最让人头疼的还是那些疯狂的数学。 FAX|.!US*p  
- 0R5g3^*/  
    该死的,我们很久以前就讨论过那些愚蠢的"均值和方差"垃圾。 J<'[P$D  
|-a5|3  
    你没有解释为什么它不能使用简单得多的 MAD(中位数绝对偏差)而使用方差。 /Nt#|C>  
iyKAw   
    这个错误的决定直接导致了毫无意义地使用过于复杂的 128 位数学。 w9< <|ZaU  
MKf|(6;~  
    当时我就说它设计过度,据我所知,除了一些细微的类型名称细节外,绝对没有任何变化。 WK)hj{k  
(~q.YJ'  
    但现在你却试图将这些垃圾代码作为通用库代码推给其他人使用,这立刻就意味着我**介意过度工程化的接口。 zl^ %x1G  
?<)4_  
    在其他方面,time_stats 看起来就像一个有名称和用途的正常接口,但使用了可怕的基础架构后,它就失效了。 #.L9/b(  
H=RzY-\a%  
在 Overstreet 阐述了自己的观点后,Torvalds补充道 e=Ko4Ao2y  
6?$yBu9l  
    方差值是不同的,但 MAD 和标准偏差之间的区别基本上只是一个常数因子(不同的分布会有所不同,但那又怎样?) 1y'8bt~7Pf  
)eIC5>#.  
    那么,为什么一个常数因子会对指数加权产生任何影响呢? ;-sZaU;  
-@L7! ,j  
    总之,请把你的代码放在 bcachefs 中。 >9dzl#  
VzD LGLH  
    也许 xfs 也想拷贝你的代码。我不在乎,这看起来很蠢,但这是文件系统的选择。 )Q= EmZbJz  
|y1O M  
    但如果我们要让它成为一个通用的内核库,它就必须理智。不能为了一个随机的统计元素,就让人们做 64 位的平方根和 128 位的除法。 G5*"P!@6  
0,~||H{  
因此,从目前的情况来看,Linus Torvalds 并没有接受这个针对 Linux 6.9 内核的 Bcachefs 拉取请求,原因是提议的通用库代码。我们将拭目以待,看看未来几天是否会有新的拉取请求,放弃这些补丁或以其他方式重新修改,以满足 Linux 创建者的要求。 |?v(?