游戲開(kāi)發(fā)者批評(píng)Linux調(diào)度器存在問(wèn)題,Linus Torvalds的回應(yīng)妙了
掃描二維碼
隨時(shí)隨地手機(jī)看文章
幾天前,使用C ++的游戲開(kāi)發(fā)人員Malte Skarupke發(fā)表了一篇博客文章,指出他在向Google的Stadia云游戲服務(wù)平臺(tái)Spinlock交付Linux游戲方面遇到的問(wèn)題。
Malte在這篇批評(píng)Linux內(nèi)核調(diào)度程序糟糕的文章中指出:“我發(fā)現(xiàn)大多數(shù)互斥鎖的實(shí)現(xiàn)都非常好,而大多數(shù)自旋鎖的實(shí)現(xiàn)都非常差,雖然Linux的調(diào)度程序還算可以,但遠(yuǎn)未達(dá)到理想狀態(tài)。最受歡迎的替代方案MuQSS調(diào)度程序也還存在其他問(wèn)題。另外,Windows調(diào)度程序的表現(xiàn)也非常好。”
對(duì)于Malte的這篇文章,Linus Torvalds也發(fā)表了自己的評(píng)論。在交流的過(guò)程中,變得慈祥的Linus雖然不同意文章的觀(guān)點(diǎn),但他的言語(yǔ)也不再那么激烈。通篇看下來(lái),"Pure Garbage"應(yīng)該是唯一一個(gè)比較符合Linus以前“暴躁”風(fēng)格的詞。
Linus Torvalds寫(xiě)道:“整篇文章似乎都是錯(cuò)誤的,并且作者所測(cè)量的內(nèi)容與他認(rèn)為并聲稱(chēng)的完全不同。首先,自旋鎖只能是如果你實(shí)際上知道自己在使用它們時(shí)未安排時(shí)間才使用...基本上是在釋放鎖之前讀取時(shí)間,然后在再次獲取鎖之后讀取時(shí)間,并聲稱(chēng)時(shí)間差是沒(méi)有鎖之后的時(shí)間。這簡(jiǎn)直是愚蠢和毫無(wú)意義且完全是錯(cuò)誤的,純屬胡扯!”
Linus補(bǔ)充說(shuō):“那么,該問(wèn)題的解決方案是什么?告訴系統(tǒng)您在哪里等待鎖使用鎖,并告訴它在完成鎖之后將線(xiàn)程解鎖,調(diào)度程序會(huì)合理地工作,并且不是(隨機(jī))...再說(shuō)一次:如果不確定自己在做什么,請(qǐng)不要在用戶(hù)區(qū)域使用旋轉(zhuǎn)柵門(mén)。”