On 2018-04-06 19:40:59 +0200, Tomas Vondra wrote: > In any case, I wouldn't call LockBufHdr/UnlockBufHdr a "side channel" > interlock. It's a pretty direct and intentional interlock, I think.
I mean it's a side-channel as far as DataChecksumsNeedWrite() is concerned. You're banking on all callers using a barrier implying operation around it. > Sure. But what would that be? I can't think of anything. A process that > modifies a buffer (or any other piece of shared state) without holding > some sort of lock seems broken by default. You can quite possibly already *hold* a lock if it's not an exclusive one. Greetings, Andres Freund