开发人员Malte Skarupke在博客上抱怨,将游戏移植到游戏流媒体服务Google Stadia时,所遭遇到的性能问题,是因为Linux核心调度器(Kernel Scheduler)也就是Linux自旋锁的问题,使游戏画面产生数毫秒的延迟,而这个话题受到热烈讨论,引来Linux之父Linus Torvalds研究后亲自回复,并表示Malte Skarupke提出的问题“That’s pure garbage.”

Malte Skarupke提到,他偶然听到有开发者,将游戏狂怒炼狱2(Rage 2)移植到Google Stadia的时候,遇到奇怪的延迟问题,而这些延迟问题的公用点皆使用自旋锁(Spinlock)。由于Malte Skarupke自己也在撰写自旋锁相关的程序,他解释,这个问题发生的原因在于,一个线程在没有其他线程持有该自旋锁时,需要花费数毫秒的时间获取该自旋锁,他提到,游戏中每16毫秒或33毫秒就需要在屏幕上显示一个画面,即便只延迟一毫秒也是严重的事,特别是暂停所有的线程。
Malte Skarupke花费了数个月的时间研究这个问题,并表示大部分的互斥锁(Mutex)的实例都很好,但是大多数的自旋锁实例都很糟糕,而Linux核心调度器还可以但并非最理想的做法。最后Malte Skarupke的解决方案,则是将自旋锁写法切换为互斥锁。
Linus Torvalds亲自研究了Malte Skarupke的说法,并且指出Malte Skarupke整个文章都是错的。Linus Torvalds表示,自旋锁只能在确实知道使用期间,不会被调度的时候才能使用,并且指出Malte Skarupke的测量时间的方法是错的,因为Malte Skarupke读取释放锁之前的时间,然后读取获取锁之后的时间,并且比较与没有持有锁的时间差。Linus Torvalds使用了强烈的用词,认为这既愚蠢又毫无意义,整个都是错,完全就是垃圾。
Linus Torvalds建议开发人员,使用锁的时候,告诉系统正在等候锁,并在解锁线程时让你知道,Linus Torvalds强调,除非开发者清楚自己在进行的工作,否则不要在用户空间中使用自旋锁,而他认为,开发者知道自己在做什么的可能性基本上是零。
也就是说,Malte Skarupke的发现,其实是因为本来就以不对的方式使用自旋锁,Linus Torvalds认为一开始就不应该使用自旋锁,Linux核心调度器没有问题,有问题是开发人员的使用方式。