From e4e496e88c9a0940abe1ade44337577b26f032a0 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 21 Oct 2025 16:12:30 +0900 Subject: [PATCH] Fix comment in pg_get_shmem_allocations_numa() The comment fixed in this commit described the function as dealing with database blocks, but in reality it processes shared memory allocations. Author: Bertrand Drouvot Discussion: https://postgr.es/m/aH4DDhdiG9Gi0rG7@ip-10-97-1-34.eu-west-3.compute.internal Backpatch-through: 18 --- src/backend/storage/ipc/shmem.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c index a0770e86796..b3d0a10792d 100644 --- a/src/backend/storage/ipc/shmem.c +++ b/src/backend/storage/ipc/shmem.c @@ -606,16 +606,13 @@ pg_get_shmem_allocations_numa(PG_FUNCTION_ARGS) nodes = palloc(sizeof(Size) * (max_nodes + 1)); /* - * Different database block sizes (4kB, 8kB, ..., 32kB) can be used, while - * the OS may have different memory page sizes. + * Shared memory allocations can vary in size and may not align with OS + * memory page boundaries, while NUMA queries work on pages. * - * To correctly map between them, we need to: 1. Determine the OS memory - * page size 2. Calculate how many OS pages are used by all buffer blocks - * 3. Calculate how many OS pages are contained within each database - * block. - * - * This information is needed before calling move_pages() for NUMA memory - * node inquiry. + * To correctly map each allocation to NUMA nodes, we need to: 1. + * Determine the OS memory page size. 2. Align each allocation's start/end + * addresses to page boundaries. 3. Query NUMA node information for all + * pages spanning the allocation. */ os_page_size = pg_get_shmem_pagesize();