Commit 29c3e2dd authored by Tom Lane's avatar Tom Lane

Collect built-in LWLock tranche names statically, not dynamically.

There is little point in using the LWLockRegisterTranche mechanism for
built-in tranche names.  It wastes cycles, it creates opportunities for
bugs (since failing to register a tranche name is a very hard-to-detect
problem), and the lack of any centralized list of names encourages
sloppy nonconformity in name choices.  Moreover, since we have a
centralized list of the tranches anyway in enum BuiltinTrancheIds, we're
certainly not buying any flexibility in return for these disadvantages.

Hence, nuke all the backend-internal LWLockRegisterTranche calls,
and instead provide a const array of the builtin tranche names.

(I have in mind to change a bunch of these names shortly, but this
patch is just about getting them into one place.)

Discussion: https://postgr.es/m/9056.1589419765@sss.pgh.pa.us
parent 07451e1f
...@@ -235,9 +235,6 @@ SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns, ...@@ -235,9 +235,6 @@ SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
else else
Assert(found); Assert(found);
/* Register SLRU tranche in the main tranches array */
LWLockRegisterTranche(tranche_id, name);
/* /*
* Initialize the unshared control struct, including directory path. We * Initialize the unshared control struct, including directory path. We
* assume caller set PagePrecedes. * assume caller set PagePrecedes.
......
...@@ -5116,10 +5116,8 @@ XLOGShmemInit(void) ...@@ -5116,10 +5116,8 @@ XLOGShmemInit(void)
/* both should be present or neither */ /* both should be present or neither */
Assert(foundCFile && foundXLog); Assert(foundCFile && foundXLog);
/* Initialize local copy of WALInsertLocks and register the tranche */ /* Initialize local copy of WALInsertLocks */
WALInsertLocks = XLogCtl->Insert.WALInsertLocks; WALInsertLocks = XLogCtl->Insert.WALInsertLocks;
LWLockRegisterTranche(LWTRANCHE_WAL_INSERT,
"wal_insert");
if (localControlFile) if (localControlFile)
pfree(localControlFile); pfree(localControlFile);
...@@ -5155,7 +5153,6 @@ XLOGShmemInit(void) ...@@ -5155,7 +5153,6 @@ XLOGShmemInit(void)
(WALInsertLockPadded *) allocptr; (WALInsertLockPadded *) allocptr;
allocptr += sizeof(WALInsertLockPadded) * NUM_XLOGINSERT_LOCKS; allocptr += sizeof(WALInsertLockPadded) * NUM_XLOGINSERT_LOCKS;
LWLockRegisterTranche(LWTRANCHE_WAL_INSERT, "wal_insert");
for (i = 0; i < NUM_XLOGINSERT_LOCKS; i++) for (i = 0; i < NUM_XLOGINSERT_LOCKS; i++)
{ {
LWLockInitialize(&WALInsertLocks[i].l.lock, LWTRANCHE_WAL_INSERT); LWLockInitialize(&WALInsertLocks[i].l.lock, LWTRANCHE_WAL_INSERT);
......
...@@ -517,9 +517,6 @@ ReplicationOriginShmemInit(void) ...@@ -517,9 +517,6 @@ ReplicationOriginShmemInit(void)
ConditionVariableInit(&replication_states[i].origin_cv); ConditionVariableInit(&replication_states[i].origin_cv);
} }
} }
LWLockRegisterTranche(replication_states_ctl->tranche_id,
"replication_origin");
} }
/* --------------------------------------------------------------------------- /* ---------------------------------------------------------------------------
......
...@@ -140,9 +140,6 @@ ReplicationSlotsShmemInit(void) ...@@ -140,9 +140,6 @@ ReplicationSlotsShmemInit(void)
ShmemInitStruct("ReplicationSlot Ctl", ReplicationSlotsShmemSize(), ShmemInitStruct("ReplicationSlot Ctl", ReplicationSlotsShmemSize(),
&found); &found);
LWLockRegisterTranche(LWTRANCHE_REPLICATION_SLOT_IO_IN_PROGRESS,
"replication_slot_io");
if (!found) if (!found)
{ {
int i; int i;
......
...@@ -87,9 +87,6 @@ InitBufferPool(void) ...@@ -87,9 +87,6 @@ InitBufferPool(void)
NBuffers * (Size) sizeof(LWLockMinimallyPadded), NBuffers * (Size) sizeof(LWLockMinimallyPadded),
&foundIOLocks); &foundIOLocks);
LWLockRegisterTranche(LWTRANCHE_BUFFER_IO_IN_PROGRESS, "buffer_io");
LWLockRegisterTranche(LWTRANCHE_BUFFER_CONTENT, "buffer_content");
/* /*
* The array used to sort to-be-checkpointed buffer ids is located in * The array used to sort to-be-checkpointed buffer ids is located in
* shared memory, to avoid having to allocate significant amounts of * shared memory, to avoid having to allocate significant amounts of
......
...@@ -267,8 +267,6 @@ CreateSharedProcArray(void) ...@@ -267,8 +267,6 @@ CreateSharedProcArray(void)
mul_size(sizeof(bool), TOTAL_MAX_CACHED_SUBXIDS), mul_size(sizeof(bool), TOTAL_MAX_CACHED_SUBXIDS),
&found); &found);
} }
LWLockRegisterTranche(LWTRANCHE_PROC, "proc");
} }
/* /*
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment