Tom Lane wrote:
> Alan Stange <stange@rentec.com> writes:
>> I took a look at backend/port/tas/solaris_sparc.s file. Isn't that code
>> a bit longer than needed?
>
> It's already been rewritten in HEAD; uses "cas" now.
Hmmm. I've just been looking at the last snapshot of the HEAD and
s_lock.h is still using an ldstub instruction instead of a cas for the
inlined tas() function when gcc is being used. Having a cas
instruction here would probably be an improvement too, right?
Finally, I noticed that pg_sleep is calling select() for a sleep. On
Solaris, this is a fairly expensive way to get off the run queue
compared to just calling nanosleep(). How often do backends go to
sleep here under "typical" workloads? Yes, I know this is a somewhat
crazy question, I'm just trying to get a sense of how "hot" this code
path is.
Thanks!
-- Alan