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

局长
 局长
发布于 2020年01月09日
收藏 9

几天前,一名使用 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 的回应不再像以前那样充满“对抗性”,他不同意开发者的观点,于是指出并一直在耐心解释那篇博文错误的地方。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Linus 礼貌回应开发者对 Linux 调度器存在问题的批评
加载中

精彩评论

琴酒丶
邮件过滤器启用了。。。
拜仁慕尼黑
拜仁慕尼黑
业绩唯一一个不骂人是新闻的人。
给祖师爷拜过
dingdayu
dingdayu
如果不是Linus的强势,怕Linux不会有现在的社区。
晒太阳的小猪
晒太阳的小猪
邮件过滤器是不是也搞个GPL V2大项目
红白机
红白机
人是不是年纪大一般不会怼人了?

最新评论(15

写代码有注释
写代码有注释
这个翻译是什么鬼 ?
amita
amita
看上去是使用错误
wangxuwei
wangxuwei
大神:you can you up ,no can no BB
quanwei9958
quanwei9958
邮件过滤器开源吧
kis龍
kis龍
不开发了, 脾气也变好了吗?:bowtie:
_Anonymous_
_Anonymous_
毕竟Windows早在90年代就要兼顾游戏,尤其是大型游戏,完善程度肯定领先。而Linux从诞生以来几乎没这种需求,碰到问题也不奇怪。
其实Linux直接解决问题就是了,打嘴炮也就开骂时爽,真要解决问题的时候还不是要回去默默改代码。不过Linus已经不需要怎么写代码了,所以心态不一样吧。
刑龙于川
刑龙于川
逐渐慈祥linus
晒太阳的小猪
晒太阳的小猪
邮件过滤器是不是也搞个GPL V2大项目
风从东方来
风从东方来
看着有点语法不通顺
琴酒丶
邮件过滤器启用了。。。
返回顶部
顶部