Tom Lane wrote:
Alan Stange <stange(at)rentec(dot)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