IT商业网-解读信息时代的商业变革
当前位置: 首页 > 软件 > 正文

游戏开发者批评 Linux 调度器存在问题 尤其是Linux内核的自旋锁

2020-01-09 09:30:08  来源:开源中国    

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

免责声明: IT商业新闻网遵守行业规则,本站所转载的稿件都标注作者和来源。 IT商业新闻网原创文章,请转载时务必注明文章作者和来源“IT商业新闻网”, 不尊重本站原创的行为将受到IT商业新闻网的追责,转载稿件或作者投稿可能会经编辑修改或者补充, 如有异议可投诉至:post@itxinwen.com
微信公众号:您想你获取IT商业新闻网最新原创内容, 请在微信公众号中搜索“IT商业网”或者搜索微信号:itxinwen,或用扫描左侧微信二维码。 即可添加关注。
标签:

品牌、内容合作请点这里: 寻求合作 ››

相关阅读RELEVANT