I just noticed this item when I went through my TODO list today. I remember finding this issue a few months ago, but at that time, only bugs new to PG19 were being processed, so I put it on my TODO list.
This is a small issue, but it has been there for many years. CalculateShmemSize() has logic to round size to a multiple of a typical page size: ``` /* might as well round it off to a multiple of a typical page size */ size = add_size(size, 8192 - (size % 8192)); ```
When size is already a multiple of 8192, this add_size() call is not needed; it only results in an extra 8192 bytes being allocated in shared memory. The fix is simple: ``` if (size % 8192 != 0) /* might as well round it off to a multiple of a typical page size */ size = add_size(size, 8192 - (size % 8192)); ```
I put the comment within the if clause because I remember Tom once mentioning that this would be the preferred style.