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