Hi,

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.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/




Attachment: v1-0001-Avoid-extra-shared-memory-page-in-CalculateShmemS.patch
Description: Binary data

Reply via email to