Linus Torvalds 不满提交到 Linux 6.9 的部分 Bcachefs 代码

Linux6.9内核合并Bcachefs更新时,LinusTorvalds对某些代码库化提议不满,尤其是涉及过度设计和不合理的接口。他强调代码应保持简洁,针对特定系统而非通用,导致此次拉取请求未被接受。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

e67e744ccd4273a393b10b003e96b748.gif

自从文件系统 Bcachefs 进入 Linux 6.7 内核的上游以来,运行一直很顺利。然而,当Bcachefs 的功能更新提交到 Linux 6.9 合并时,Linus Torvalds 表示对其中一些提议的代码并不满意。

原文链接:https://www.phoronix.com/news/Linux-6.9-Bcachefs-Attempt

未经允许,禁止转载!

作者 | Michael Larabel        译者 | 弯月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

提交给 Linux 6.9 的 Bcachefs 代码包括为遍历子卷提供用户空间接口的预处理工作,改进目录结构的检查,改进日志流水线以提高性能,更高效的丢弃路径改进以及其他优化。维护人员 Kent Overstreet 总结的关于 Linux 6.9 的 Bcachefs 变更拉取请求如下:

Linux 6.9 的 Bcachefs 更新:

  • 子卷子B树:提供一个用户空间接口以遍历子卷(该功能后续提供)。

  • 目录结构检查的大量改进。

  • 改进了日志流水线,大幅提升了高 iodepth 写工作负载下的性能。

  • 改进了丢弃路径:丢弃路径更高效,不再不必要地刷新日志。

  • 缓冲写路径现在可以避免获取 inode 锁。

  • 提取出各种库代码以供 XFS 使用:时间统计、均值和方差、动态数组、eytzinger、thread_with_file。

  • 新的内存管理助手:memalloc_flags_{save|restore}

  • mempool 现在可以使用 kvmalloc 内存池

然而,令 Linus Torvalds 感到不满的代码是将 Bcachefs 代码中的一些元素移到某种库的代码中,以便其他文件系统可以轻松地重复使用,而 XFS 就是可能会重用某些Bcachefs函数的文件系统之一。

Linus Torvalds 对 Bcachefs 的拉取请求做出了如下回应:

我看了一下“让随机的 bcachefs 代码成为库函数”,我觉得毫无意义,所以这意味着没有进一步的解释我不会拉取这些代码(老实说,我认为即便有解释也不行)。

在没有说明的情况下,“stdio_redirect_printf()”和 darray_char 就是一些可怕的接口。这些接口非常糟糕。

请将这些保留在您自己的代码中,不要试图让使其成为通用库。

如果你十分想将它作为库,则需要:

  1. 更详细的说明

  2. 更合理的命名,减少毫无意义的接口(“DARRAY()”)。

另外,找到另一个文件系统来共享这种代码并不足以让它成为一个合理的接口和合理的命名。

最大的问题在于数学部分。

我们早就讨论过“均值和方差”。当时就说过这是个错误,现在依然是。

你没有解释为什么不能使用简单一万倍的 MAD(中位数绝对偏差),为什么非要使用方差。

这个糟糕的决定直接导致你使用了过度复杂的 128 位数学,毫无意义。

我当时就说过这是过度设计,而且在我看来,除了一些类型名称的细节之外,绝对没有发生任何变化。

你可以将其作为仅适用于 bcachefs 的代码,我不介意。

但如今你正在试图将这些垃圾提交到其他人也会使用的通用库,那么我会非常介意过度设计的接口。

要是没有这些可怕的设计, time_stats 的名字和接口至少还是合理的。

在经过一番讨论后,Torvalds 补充道:

加权版本的代码实际上没有变化。

方差值不同,但中位数绝对偏差和标准差之间的差异实际上只是一个常数因子(对于不同的分布来说,这个常数因子会不同,但那又怎样?任何特定的情况都会有特定的分布)。

为什么一个常数因子会对指数加权产生影响呢?

不管怎么说,你大可以将代码保留在 bcachefs 中。

也许 XFS 甚至想要复制那段代码。但我不关心,我觉得很愚蠢,但这是文件系统的选择。

但如果你想将其作为一个通用内核库,那就需要合理的代码。不要为了一个随机的统计元素而进行 64 位平方根和 128 位除法运算。

就目前而言,由于Bcachefs提议的通用库代码,Linus Torvalds 不接受此次拉取请求。时下,修改后的拉取请求已被合并到 Linux 6.9 中,但不包括库代码。

推荐阅读:

▶史上最大开源LLM,参数高达3140亿!马斯克如约开源Grok,10小时狂揽10000颗Star

▶拥有 17 年经验的硕士码农,到了 43 岁连面试机会都没有……

▶纵览机器学习前生今世,万字整理谷歌首席科学家 Jeff Dean 一小时演讲

e16b58aba77ffd5b518a0077d43bf0bc.gif

4 月 25 ~ 26 日,由 CSDN 和高端 IT 咨询和教育平台 Boolan 联合主办的「全球机器学习技术大会」将在上海环球港凯悦酒店举行,特邀近 50 位技术领袖和行业应用专家,与 1000+ 来自电商、金融、汽车、智能制造、通信、工业互联网、医疗、教育等众多行业的精英参会听众,共同探讨人工智能领域的前沿发展和行业最佳实践。欢迎所有开发者朋友访问官网 http://ml-summit.org、点击「阅读原文」或扫码进一步了解详情。

b9bbf0d9266d67d60379f9555e64f668.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值