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