Hello,
I removed the whole tas_dummy() block for sparc from s_lock.c. I
recompiled and installed with and without --enable-debug. I then ran
pgbench on the box. This is using the Sun 11 compilers on Solaris 10.
I tested using pgbench
$ pgbench -i -s 32 pgbench
$ pgbench -s 32 -c 1 -t 10000 -v
for up to 8 clients on an 8 core UltraSparc IV+ system.
Everything compiled and ran fine.
I took a look at backend/port/tas/solaris_sparc.s file. Isn't that code
a bit longer than needed?
Aren't the callers of this doing
while (tas(lock)) {
// wait a bit without smashing the kernel/memory bus
}
in which case the code should just be
ldstub [%o0],%o0
retl
nop
without the extra comparisons and branching. Unless I'm missing something.
-- Alan