BTW, I just remembered that in 7.0.*, the SLocks that are managed by
SpinAcquire() all live in their own little shm segment. On a machine
where slock_t is char, it'd likely only amount to 128 bytes or so.
Maybe you are seeing some bug in FreeBSD's handling of tiny shm
segments?
regards, tom lane