From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Zeugswetter Andreas SB SD" <ZeugswetterA(at)spardat(dot)at> |
Cc: | "Greg Stark" <gsstark(at)mit(dot)edu>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: 8.0 beta 1 on linux-mipsel R5900 |
Date: | 2004-08-24 14:35:34 |
Message-ID: | 3292.1093358134@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Zeugswetter Andreas SB SD" <ZeugswetterA(at)spardat(dot)at> writes:
> I guess it could still save some CPU cycles in the single CPU case,
> if you yield() instead of tight loop around TAS in the failure case.
> Problem is yield and detecting single CPU is not portable.
Sure, but that's still a spinlock --- you're just tuning the backoff
behavior for local conditions.
On some architectures (Alpha at least) the TAS instruction can "fail"
even though the lock is free, if an interrupt happens to get in the way.
So I'd be inclined to loop a few times even on a single-CPU machine.
But yes, a yield primitive would be nice, and so would knowing the
number of CPUs.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-08-24 14:43:41 | Re: missing data/global |
Previous Message | Tom Lane | 2004-08-24 14:31:13 | Re: [COMMITTERS] pgsql-server: Rearrange pg_subtrans handling |