Re: PATCH: Fix ll/sc for mips (take 3)
From: Ralf Baechle <hidden>
Date: 2002-02-04 13:20:59
On Sat, Feb 02, 2002 at 01:53:23PM -0500, Justin Carlson wrote:
2) More importantly, most implementations don't use any sort of dynamic branch prediction on branch likelies. They predict taken, always, since that's the specified intent (it's a branch *likely* to be taken).
CPU guys hate branch likely and would probably love if whoever invented them hires at Intel ;-)
For most spin locks, the normal behaviour is a fall through, not taking that branch, so you're inflicting a branch mispredict penalty on every lock grabbed without contention. Even for locks which the general case is contention, giving the processor branch predictor a chance to learn that is a Good Idea.
I was thinking about spinlocks like retry: la addrreg, retry ll reg, lockvar ... sc reg, lockvar teq $0, reg That would depend on the price of a trap instruction when it's not taken and the probability of the lock being congested. Ralf