Hi, On 2025-02-23 10:39:36 +1300, Thomas Munro wrote: > On Sun, Feb 23, 2025 at 4:16 AM Andres Freund <and...@anarazel.de> wrote: > > We do count the number of lwlock share lockers and the number of buffer > > refcounts within those bits. And obviously 0 lockers/refcounts has to be > > valid. So I think the limit is correct? > > Ah, right. That makes perfect sense. The 18 bits need to be able to > hold a count, not just an index, and I confused myself about that from > the moment I thought about the name PROC_NUMBER_BITS, which I retract.
Cool. I now pushed them, including static asserts in inval.c and deadlock. Thanks for the reviews and the complaint leading to these changes. > > I didn't yet have enough coffe, but isn't the inval.c limit 2^24-1 rather > > than > > 2^23-1? > > Yeah, it has 24 bits of space, but curiously backend_hi is signed, so > (msg->sm.backend_hi << 16) would be sign-extended, so it wouldn't actually > work if you used all 24 bits... which is obviously not a real > problem... Heh, that's odd. I left it like that, didn't seem worth changing given that it's so far from the real limit... Greetings, Andres Freund