Jeff Davis <pgsql@j-davis.com> writes:
> What's the problem with that? If you already have the VM buffer pinned
> (which should be possible if we keep the VM buffer in a longer-lived
> structure), then doing the test is almost as cheap as checking
> PD_ALL_VISIBLE, because you don't need any locks.
Really? What about race conditions? Specifically, I think what you
suggest is likely to be unreliable on machines with weak memory
ordering. Consider possibility that someone else just changed the VM
bit. Getting a lock ensures synchronization. (Yeah, it's possible that
we could use some primitive cheaper than a lock ... but it's not going
to be free.)
regards, tom lane