Linus Torvalds:你的代码好恶心
维护者 Kent Overstreet 将针对 Linux 6.9 的 Bcachefs 改动的拉取请求总结为:
- Subvolume children btree;是为 walking subvolumes 提供用户空间界面所必需的,计划在稍后提供
- 对目录结构检查进行了大量改进
- 改进了日志管道,显着提高了 high iodepth write workloads 的性能
- Discard path 改进:Discard path 更加高效,并且不再不必要地刷新日志
- Buffered write path 现在可以避免占用 inode lock
- 调出用于 XFS 的各种库代码:time stats、mean_and_variance、darray、eytzinger、thread_with_file
- 新的 mm helper:memalloc_flags_{save|restore}
- mempool now does kvmalloc mempools
但让 Linus Torvalds 感到不解的是,这些补丁把 Bcachefs 代码中的一些元素移到了一些 library-type 的代码中,以至于可以轻松地被其他文件系统重用。
Linus Torvalds 在回应相关 PR 时表示:“我看了看 'make random bcachefs code be a library function' 的内容,觉得毫无意义,最终决定在没有进一步解释的情况下我不会使用它(老实说,我不认为这些解释站得住脚)。”
并直言 "stdio_redirect_printf ()" 和 darray_char 都很“恶心”——建议 Overstreet 将其保留在自己的代码中就好,不要试图提交上来。
如果实在不死心的话,建议他先做好以下几点:
- 多添加注释
- 进行更合理的命名,减少恶心和完全无意义的 interfaces ("DARRAY ()")。
而且,仅仅找到一个其他文件系统来共享这种代码并不足以证明它是一个合理的 interfaces 和合理的命名。但是,最主要的问题是疯狂的数学计算。该死的,我们很久以前就讨论过 "mean and variance" 这种愚蠢的垃圾。当时就错了,现在还是错的。你没有解释为什么它不能使用简单得多的 MAD(median absolute deviation),而不是使用 variance。这个错误的决定直接导致无意义地使用过于复杂的 128 位数学。我当时称其为疯狂的过度工程化,而就我所知,除了一些轻微的类型名称细节外,绝对没有任何变化。只要你把它改成某种只适用于 bcachefs 的东西,我就不介意。但现在,你却试图把这些垃圾作为通用库代码推向市场,让其他人也能使用,这就意味着,我会介意这种过度设计的 interfaces。在其他方面,time_stats 看上去就像是一个有名称和用途的正常 interfaces,但使用了这种可怕的基础架构后,它就变得不伦不类了。
在 Overstreet 争辩之后,Linus 进一步补充道:
加权版本的代码字面上没有任何变化。variance value 是不同的,但 MAD 和 standard deviation 之间的区别基本上只是一个 constant factor(不同的分布会有所不同,但那又怎样?任何特定情况都会有特定的分布)。那么,为什么 constant factor 会对指数加权产生任何影响呢?不管怎样,请随意将您的代码保存在 bcachefs 中。也许 xfs 甚至想复制该代码。我不在乎,这看起来很愚蠢,但这是文件系统的选择。但如果我们要把它打造成一个通用的内核库,它就必须是健全的。不要让人们仅仅为了随机统计元素而进行 64 位平方根和 128 位除法。
热门文章
获取新鲜开源资讯
网罗全球开源软件
畅读硬核技术文章
品味高级趣味梗图
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。