Re: Draft for basic NUMA observability

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Kirill Reshke <reshkekirill@gmail.com>
Cc: Tomas Vondra <tomas@vondra.me>, Jakub Wartak <jakub.wartak@enterprisedb.com>, Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Nazir Bilal Yavuz <byavuz81@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-08T13:06:09Z
Lists: pgsql-hackers
Hi,

On 2025-04-08 17:44:19 +0500, Kirill Reshke wrote:
> On Mon, 7 Apr 2025 at 23:00, Tomas Vondra <tomas@vondra.me> wrote:
> > I'll let the CI run the tests on it, and
> > then will push, unless someone has more comments.
> >
> 
> 
> Hi! I noticed strange failure after this commit[0]
> 
> Looks like it is related to 65c298f61fc70f2f960437c05649f71b862e2c48
> 
> In file included from  [01m [K../pgsql/src/include/postgres.h:49 [m [K,
>                  from  [01m [K../pgsql/src/port/pg_numa.c:16 [m [K:
>  [01m [K../pgsql/src/include/utils/elog.h:79:10: [m [K
>  [01;31m [Kfatal error:  [m [Kutils/errcodes.h: No such file or
> directory
>    79 | #include  [01;31m [K"utils/errcodes.h" [m [K
>       |           [01;31m [K^~~~~~~~~~~~~~~~~~ [m [K
> compilation terminated.

$ ninja -t missingdeps
Missing dep: src/port/libpgport.a.p/pg_numa.c.o uses src/include/utils/errcodes.h (generated by CUSTOM_COMMAND)
Missing dep: src/port/libpgport_shlib.a.p/pg_numa.c.o uses src/include/utils/errcodes.h (generated by CUSTOM_COMMAND)
Processed 2384 nodes.
Error: There are 2 missing dependency paths.
2 targets had depfile dependencies on 1 distinct generated inputs (from 1 rules)  without a non-depfile dep path to the generator.
There might be build flakiness if any of the targets listed above are built alone, or not late enough, in a clean output directory.


I think it's not right that something in src/port defines an SQL callable
function. The set of headers for that pull in a lot of things.

Since the file relies on things like GUCs, I suspect this should be in
src/backend/port or such instead.

Greetings,

Andres Freund



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. doc: Correct pg_shmem_allocations_numa.size data type

  2. Add pg_buffercache_numa view with NUMA node info

  3. Add support for basic NUMA awareness

  4. Introduce pg_shmem_allocations_numa view