summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2025-09-02 16:22:03 +0900
committerMichael Paquier <michael@paquier.xyz>2025-09-02 16:22:03 +0900
commiteccba079c2ea7d6b40a02de774e773e3aaf4bdda (patch)
treeb60e65c82657ef61268d5139f2b22ae960b96960 /src/backend
parenta850be2fe653b3b529969946c1cefe0fd9e34a8d (diff)
Generate pgstat_count_slru*() functions for slru using macros
This change replaces seven functions definitions by macros, reducing a bit some repetitive patterns in the code. An interesting side effect is that this removes an inconsistency in the naming of SLRU increment functions with the field names. This change is similar to 850f4b4c8cab, 8018ffbf5895 or 83a1a1b56645. Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com> Discussion: https://postgr.es/m/aLHA//gr4dTpDHHC@ip-10-97-1-34.eu-west-3.compute.internal
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/access/transam/slru.c12
-rw-r--r--src/backend/utils/activity/pgstat_slru.c54
2 files changed, 26 insertions, 40 deletions
diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c
index 10ec259f382..ca69ee4d4f4 100644
--- a/src/backend/access/transam/slru.c
+++ b/src/backend/access/transam/slru.c
@@ -408,7 +408,7 @@ SimpleLruZeroPage(SlruCtl ctl, int64 pageno)
pg_atomic_write_u64(&shared->latest_page_number, pageno);
/* update the stats counter of zeroed pages */
- pgstat_count_slru_page_zeroed(shared->slru_stats_idx);
+ pgstat_count_slru_blocks_zeroed(shared->slru_stats_idx);
return slotno;
}
@@ -560,7 +560,7 @@ SimpleLruReadPage(SlruCtl ctl, int64 pageno, bool write_ok,
SlruRecentlyUsed(shared, slotno);
/* update the stats counter of pages found in the SLRU */
- pgstat_count_slru_page_hit(shared->slru_stats_idx);
+ pgstat_count_slru_blocks_hit(shared->slru_stats_idx);
return slotno;
}
@@ -605,7 +605,7 @@ SimpleLruReadPage(SlruCtl ctl, int64 pageno, bool write_ok,
SlruRecentlyUsed(shared, slotno);
/* update the stats counter of pages not found in SLRU */
- pgstat_count_slru_page_read(shared->slru_stats_idx);
+ pgstat_count_slru_blocks_read(shared->slru_stats_idx);
return slotno;
}
@@ -648,7 +648,7 @@ SimpleLruReadPage_ReadOnly(SlruCtl ctl, int64 pageno, TransactionId xid)
SlruRecentlyUsed(shared, slotno);
/* update the stats counter of pages found in the SLRU */
- pgstat_count_slru_page_hit(shared->slru_stats_idx);
+ pgstat_count_slru_blocks_hit(shared->slru_stats_idx);
return slotno;
}
@@ -778,7 +778,7 @@ SimpleLruDoesPhysicalPageExist(SlruCtl ctl, int64 pageno)
off_t endpos;
/* update the stats counter of checked pages */
- pgstat_count_slru_page_exists(ctl->shared->slru_stats_idx);
+ pgstat_count_slru_blocks_exists(ctl->shared->slru_stats_idx);
SlruFileName(ctl, path, segno);
@@ -907,7 +907,7 @@ SlruPhysicalWritePage(SlruCtl ctl, int64 pageno, int slotno, SlruWriteAll fdata)
int fd = -1;
/* update the stats counter of written pages */
- pgstat_count_slru_page_written(shared->slru_stats_idx);
+ pgstat_count_slru_blocks_written(shared->slru_stats_idx);
/*
* Honor the write-WAL-before-data rule, if appropriate, so that we do not
diff --git a/src/backend/utils/activity/pgstat_slru.c b/src/backend/utils/activity/pgstat_slru.c
index 7bd8744accb..da50f8a0457 100644
--- a/src/backend/utils/activity/pgstat_slru.c
+++ b/src/backend/utils/activity/pgstat_slru.c
@@ -55,47 +55,33 @@ pgstat_reset_slru(const char *name)
* SLRU statistics count accumulation functions --- called from slru.c
*/
-void
-pgstat_count_slru_page_zeroed(int slru_idx)
-{
- get_slru_entry(slru_idx)->blocks_zeroed += 1;
+#define PGSTAT_COUNT_SLRU(stat) \
+void \
+CppConcat(pgstat_count_slru_,stat)(int slru_idx) \
+{ \
+ get_slru_entry(slru_idx)->stat += 1; \
}
-void
-pgstat_count_slru_page_hit(int slru_idx)
-{
- get_slru_entry(slru_idx)->blocks_hit += 1;
-}
+/* pgstat_count_slru_blocks_zeroed */
+PGSTAT_COUNT_SLRU(blocks_zeroed)
-void
-pgstat_count_slru_page_exists(int slru_idx)
-{
- get_slru_entry(slru_idx)->blocks_exists += 1;
-}
+/* pgstat_count_slru_blocks_hit */
+PGSTAT_COUNT_SLRU(blocks_hit)
-void
-pgstat_count_slru_page_read(int slru_idx)
-{
- get_slru_entry(slru_idx)->blocks_read += 1;
-}
+/* pgstat_count_slru_blocks_exists */
+PGSTAT_COUNT_SLRU(blocks_exists)
-void
-pgstat_count_slru_page_written(int slru_idx)
-{
- get_slru_entry(slru_idx)->blocks_written += 1;
-}
+/* pgstat_count_slru_blocks_read */
+PGSTAT_COUNT_SLRU(blocks_read)
-void
-pgstat_count_slru_flush(int slru_idx)
-{
- get_slru_entry(slru_idx)->flush += 1;
-}
+/* pgstat_count_slru_blocks_written */
+PGSTAT_COUNT_SLRU(blocks_written)
-void
-pgstat_count_slru_truncate(int slru_idx)
-{
- get_slru_entry(slru_idx)->truncate += 1;
-}
+/* pgstat_count_slru_flush */
+PGSTAT_COUNT_SLRU(flush)
+
+/* pgstat_count_slru_truncate */
+PGSTAT_COUNT_SLRU(truncate)
/*
* Support function for the SQL-callable pgstat* functions. Returns