Re: pgsql: Introduce pg_shmem_allocations_numa view

From: Christoph Berg <myon(at)debian(dot)org>
To: Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>
Cc: Tomas Vondra <tomas(at)vondra(dot)me>, Andres Freund <andres(at)anarazel(dot)de>, Tomas Vondra <tomas(dot)vondra(at)postgresql(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Introduce pg_shmem_allocations_numa view
Date: 2025-06-24 18:24:22
Message-ID: aFrtVtgd2wxY3k59@msg.df7cb.de
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Re: Bertrand Drouvot
> Yes, something like:
>
> diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
> index c9ae3b45b76..070ad2f13e7 100644
> --- a/src/backend/storage/ipc/shmem.c
> +++ b/src/backend/storage/ipc/shmem.c
> @@ -689,8 +689,17 @@ pg_get_shmem_allocations_numa(PG_FUNCTION_ARGS)
> CHECK_FOR_INTERRUPTS();
> }
>
> - if (pg_numa_query_pages(0, shm_ent_page_count, page_ptrs, pages_status) == -1)
> - elog(ERROR, "failed NUMA pages inquiry status: %m");
> + #define NUMA_QUERY_CHUNK_SIZE 16 /* has to be <= DO_PAGES_STAT_CHUNK_NR (do_pages_stat())*/
> +
> + for (uint64 chunk_start = 0; chunk_start < shm_ent_page_count; chunk_start += NUMA_QUERY_CHUNK_SIZE) {
> + uint64 chunk_size = Min(NUMA_QUERY_CHUNK_SIZE, shm_ent_page_count - chunk_start);
> +
> + if (pg_numa_query_pages(0, chunk_size, &page_ptrs[chunk_start],
> + &pages_status[chunk_start]) == -1)
> + elog(ERROR, "failed NUMA pages inquiry status: %m");
> + }
> +
> + #undef NUMA_QUERY_CHUNK_SIZE

I uploaded a variant of this patch to Debian and it seems to have fixed the issue:

https://buildd.debian.org/status/package.php?p=postgresql-18&suite=experimental

(No reply from linux-mm yet.)

Christoph

Attachment Content-Type Size
move-pages32 text/plain 2.3 KB

In response to

Browse pgsql-committers by date

  From Date Subject
Next Message Tomas Vondra 2025-06-24 20:32:25 Re: pgsql: Introduce pg_shmem_allocations_numa view
Previous Message Tom Lane 2025-06-24 18:14:29 pgsql: Prevent excessive delays before launching new logrep workers.

Browse pgsql-hackers by date

  From Date Subject
Next Message Dean Rasheed 2025-06-24 18:49:23 Allow ON CONFLICT DO UPDATE to return EXCLUDED values
Previous Message Nathan Bossart 2025-06-24 18:21:56 Re: problems with toast.* reloptions