Linux's多颗粒时间戳寿命短:几周后从内核中删除

2023年 9月 24日 37.3k 0

合并的新功能之一
Linux 6.6
内核是
多粒度时间戳
用于VFS层,并将其连接到EXT4、Btrfs、XFS和Tmpfs文件系统。这种粗粒度时间戳的替代方案最终暴露了一些问题,本周在Linux 6.6-rc3之前,该功能已从内核中完全剥离。

多粒度时间戳旨在解决当前粗粒度时间戳在更新创建/修改时间方面可能无效的情况,因为在每一瞬间的时间戳内可能会发生大量I/O。例如,NFS依赖于当前的粗粒度时间戳来验证缓存,希望这种多粒度时间戳更健壮。不过,多粒度时间戳只是为了避免性能开销而选择性地启用的。

微软的Christian Brauner最初为Linux 6.6提交了该功能,他继续提交了pull请求,因为放弃了短暂的内核功能,该请求已经得到了认可。他
解释

“当没有人主动查询细粒度时间戳更新时,内核会取消这些更新,以避免性能影响。因此,像write(f1)stat(f2)write(f2)stat(f2)write。

当程序比较时间戳时,这样的情节漏洞可能会导致微妙的错误。例如,nap()函数将估计,在后续调用之间,它需要在细粒度时间戳启用的文件系统上等待一纳秒才能观察到时间戳的变化。但通常情况下,如果我们认为没有人主动查询细粒度时间戳以避免性能影响,那么我们不会用多个jiffie来更新时间戳。

在讨论各种修复时,我们决定回到绘图板上,并最终探索一种解决方案,该解决方案只在内部向nfs公开这种细粒度的时间戳,而从不向用户空间公开。

由于讨论了多种解决方案,所以这里诚实的做法不是修复或禁用它,而是干净地恢复。通用基础设施可能会恢复,但没有理由将这些代码保留在主线中。“

因此,在短短几周后,在今天的Linux 6.6-rc3发布之前,多粒度时间戳代码已经从内核中删除。至少有
Linux 6.6的许多其他伟大功能
.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论