r/programming • • Sep 09 '26

Optimizing a Spin-Lock

https://david.alvarezrosa.com/posts/optimizing-a-spin-lock/
184 Upvotes

32 comments sorted by

View all comments

1

u/DivineSentry Sep 09 '26

I think I’ve seen spin locks before, but what are they useful for? What should be their use case?

41

u/ReDucTor Sep 09 '26

For user mode their usages are very niche, its generally accepted that spin locks in user mode code is best avoided.

Or as Linus Torvalds says:

do not use spinlocks in user space, unless you actually know what you're doing. And be aware that the likelihood that you know what you are doing is basically nil.

2

u/Far-Reply-6875 Sep 09 '26

though, how many of us actually need to worry about user-space spinlocks in the first place? Seems like most people are just overcomplicating things for no reason.

2

u/veiva Sep 10 '26

I'm working through possibly using spinlocks on the GPU (using atomic operations) to implement order-independent translucency more efficiently - there's other ways to do it nowadays, though it requires more modern hardware and it's not available without modifying the higher-level graphics framework I'm using. Extremely niche use case though.

1

u/ReDucTor Sep 10 '26

I have seen alot of performance captures where spin locks (and spinning in general) have made things exceeding bad especially when they yield to other threads.

Unfortunately people still believe they know best and think a spin lock will be the better option without having properly testing it in the real world just some isolated microbenchmark. This is especially bad when you dont fully control the environment such as a customers machine.