Linus is right. Don’t use spinlocks in user-land. The scheduler can’t know you’re spinning on a lock, so it can’t help you. Don’t do dumb things — spinning on a lock in user-land is dumb. Mutexes are as fast as spinlocks in the uncontended case, so use mutexes.
“do not use xxx, unless…
Link: Linus Torvalds: Linux Scheduler Not to Blame for Google Stadia Port Issues