Hi hackers, While working on [1], I noticed that there are unused fields in BufferCacheNumaRec since ba2a3c2302f.
Also, I noticed that a comment was not at the correct location in pg_buffercache_numa_pages(). The attached takes care of both. [1]: https://www.postgresql.org/message-id/aR9I29QgGdyUMkJq%40ip-10-97-1-34.eu-west-3.compute.internal Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
>From 6dcc015e70ed18f22f1de18372910ac603fd2f0c Mon Sep 17 00:00:00 2001 From: Bertrand Drouvot <[email protected]> Date: Fri, 21 Nov 2025 05:53:50 +0000 Subject: [PATCH v1] Remove unused fields from BufferCacheNumaRec These were added by ba2a3c2302f and never been used. Also move (and re-word a bit) a comment that was not at the right place. --- contrib/pg_buffercache/pg_buffercache_pages.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) 100.0% contrib/pg_buffercache/ diff --git a/contrib/pg_buffercache/pg_buffercache_pages.c b/contrib/pg_buffercache/pg_buffercache_pages.c index c29b784dfa1..1fe350783b1 100644 --- a/contrib/pg_buffercache/pg_buffercache_pages.c +++ b/contrib/pg_buffercache/pg_buffercache_pages.c @@ -82,9 +82,6 @@ typedef struct typedef struct { TupleDesc tupdesc; - int buffers_per_page; - int pages_per_buffer; - int os_page_size; BufferCacheNumaRec *record; } BufferCacheNumaContext; @@ -368,7 +365,11 @@ pg_buffercache_numa_pages(PG_FUNCTION_ARGS) os_page_ptrs = palloc0(sizeof(void *) * os_page_count); os_page_status = palloc(sizeof(uint64) * os_page_count); - /* Fill pointers for all the memory pages. */ + /* + * Fill pointers for all the memory pages. This loop stores into + * os_page_ptrs[] and touches (if needed) addresses as input to one + * big move_pages(2) inquiry system call. + */ idx = 0; for (char *ptr = startptr; ptr < endptr; ptr += os_page_size) { @@ -449,10 +450,6 @@ pg_buffercache_numa_pages(PG_FUNCTION_ARGS) * We don't hold the partition locks, so we don't get a consistent * snapshot across all buffers, but we do grab the buffer header * locks, so the information of each buffer is self-consistent. - * - * This loop touches and stores addresses into os_page_ptrs[] as input - * to one big move_pages(2) inquiry system call. Basically we ask for - * all memory pages for NBuffers. */ startptr = (char *) TYPEALIGN_DOWN(os_page_size, (char *) BufferGetBlock(1)); idx = 0; -- 2.34.1
