Linus 礼貌回应开发者对 Linux 调度器存在问题的批评

来源: OSCHINA
编辑: 局长
2020-01-09

几天前,一名使用 C++ 的游戏开发者 Malte Skarupke 发表博客称在为 Google 的云游戏服务平台 Google Stadia 提供 Linux 游戏时遇到了问题,并表示问题显然来自 Linux 内核的调度程序,尤其是 Linux 内核的自旋锁(Spinlock)。

Malte 在这篇批评 Linux 内核调度程序糟糕的文章中指出:“我发现大多数互斥锁的实现都非常好,而大多数自旋锁的实现都非常差,虽然 Linux 的调度程序还算可以,但远未达到理想状态。最受欢迎的替代方案 MuQSS 调度程序也还存在其他问题。另外,Windows 调度程序的表现也非常好。”

对于 Malte 的这篇文章,Linus Torvalds 也发表了自己的评论。在交流的过程中,变得慈祥的 Linus 虽然不同意文章的观点,但他的言语也不再那么激烈。通篇看下来,"Pure Garbage" 应该是唯一一个比较符合 Linus 以前“暴躁”风格的词。

Linus Torvalds 写道:“整篇文章似乎都是错误的,并且作者所测量的内容与他认为并声称的完全不同。首先,自旋锁只能是如果你实际上知道自己在使用它们时未安排时间才使用...基本上是在释放锁之前读取时间,然后在再次获取锁之后读取时间,并声称时间差是没有锁之后的时间。这简直是愚蠢和毫无意义且完全是错误的,纯属胡扯!”

Linus 继续补充说:“那么,解决此问题的方法是什么?告诉系统你正在等待锁的地方使用锁,并在锁线程完成时告知你解锁线程,以便调度程序合理运行,而不是(随机)运行……再重复一次:除非你真正知道自己在做什么,否则不要在用户空间中使用自旋锁,并且要认识到能搞清楚自己在做什么的可能性基本上为零。”

有关更多有趣的技术细节,请参阅 Linus 的文章全文

在另一篇文章中,Linus 继续指出游戏开发者的锁从根本上是错误的。换句话说,从他的角度来看,Linux 内核至少不应该背全部责任。但是,如在其他实例中所示,Linux 内核的调度程序代码仍有改进的空间。更重要的是,Linus 的回应不再像以前那样充满“对抗性”,他不同意开发者的观点,于是指出并一直在耐心解释那篇博文错误的地方。

展开阅读全文
10 收藏
分享
加载中
精彩评论
邮件过滤器启用了。。。
2020-01-09 09:09
22
举报
业绩唯一一个不骂人是新闻的人。
给祖师爷拜过
2020-01-09 09:01
15
举报
如果不是Linus的强势,怕Linux不会有现在的社区。
2020-01-09 09:06
12
举报
邮件过滤器是不是也搞个GPL V2大项目
2020-01-09 10:15
3
举报
人是不是年纪大一般不会怼人了?
2020-01-09 08:57
3
举报
最新评论 (15)
这个翻译是什么鬼 ?
2020-01-11 22:50
0
回复
举报
看上去是使用错误
2020-01-09 23:09
1
回复
举报
大神:you can you up ,no can no BB
2020-01-09 19:33
0
回复
举报
邮件过滤器开源吧
2020-01-09 17:03
0
回复
举报
不开发了, 脾气也变好了吗?:bowtie:
2020-01-09 16:42
0
回复
举报
毕竟Windows早在90年代就要兼顾游戏,尤其是大型游戏,完善程度肯定领先。而Linux从诞生以来几乎没这种需求,碰到问题也不奇怪。
其实Linux直接解决问题就是了,打嘴炮也就开骂时爽,真要解决问题的时候还不是要回去默默改代码。不过Linus已经不需要怎么写代码了,所以心态不一样吧。
2020-01-09 14:35
0
回复
举报
逐渐慈祥linus
2020-01-09 11:59
2
回复
举报
邮件过滤器是不是也搞个GPL V2大项目
2020-01-09 10:15
3
回复
举报
看着有点语法不通顺
2020-01-09 09:51
0
回复
举报
邮件过滤器启用了。。。
2020-01-09 09:09
22
回复
举报
更多评论
15 评论
10 收藏
分享
返回顶部
顶部