Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0fad355

Browse files
committed
Update obsolete comments in lwlock.h.
The typical size of an LWLock is now 16 bytes even on 64-bit platforms, and the size of slock_t is now irrelevant. But pg_atomic_uint32 can (perhaps surprisingly) still be larger than 4 bytes, so there's still some marginal point to allowing LWLOCK_MINIMAL_SIZE == 64. Commit 008608b made the changes that led to the need for these updates.
1 parent 0813216 commit 0fad355

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/include/storage/lwlock.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,17 @@ typedef struct LWLock
5858
* LWLockPadded can be used for cases where we want each lock to be an entire
5959
* cache line.
6060
*
61-
* On 32-bit platforms, an LWLockMinimallyPadded might actually contain more
62-
* than the absolute minimum amount of padding required to keep a lock from
63-
* crossing a cache line boundary, because an unpadded LWLock might fit into
64-
* 16 bytes. We ignore that possibility when determining the minimal amount
65-
* of padding. Older releases had larger LWLocks, so 32 really was the
66-
* minimum, and packing them in tighter might hurt performance.
61+
* An LWLockMinimallyPadded might contain more than the absolute minimum amount
62+
* of padding required to keep a lock from crossing a cache line boundary,
63+
* because an unpadded LWLock will normally fit into 16 bytes. We ignore that
64+
* possibility when determining the minimal amount of padding. Older releases
65+
* had larger LWLocks, so 32 really was the minimum, and packing them in
66+
* tighter might hurt performance.
6767
*
6868
* LWLOCK_MINIMAL_SIZE should be 32 on basically all common platforms, but
69-
* because slock_t is more than 2 bytes on some obscure platforms, we allow
70-
* for the possibility that it might be 64.
69+
* because pg_atomic_uint32 is more than 4 bytes on some obscure platforms, we
70+
* allow for the possibility that it might be 64. Even on those platforms,
71+
* we probably won't exceed 32 bytes unless LOCK_DEBUG is defined.
7172
*/
7273
#define LWLOCK_PADDED_SIZE PG_CACHE_LINE_SIZE
7374
#define LWLOCK_MINIMAL_SIZE (sizeof(LWLock) <= 32 ? 32 : 64)

0 commit comments

Comments
 (0)