Thread (1 message) 1 message, 1 author, 2002-02-04

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help