Re: failed NUMA pages inquiry status: Operation not permitted

From: Christoph Berg <myon(at)debian(dot)org>
To: Tomas Vondra <tomas(at)vondra(dot)me>
Cc: Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: failed NUMA pages inquiry status: Operation not permitted
Date: 2025-10-16 15:19:52
Message-ID: aPENGAkcrLyB_NLC@msg.df7cb.de
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

> So maybe all that's needed is a get_mempolicy() call in
> pg_numa_available() ?

numactl 2.0.19 --show does this:

if (numa_available() < 0) {
show_physcpubind();
printf("No NUMA support available on this system.\n");
exit(1);
}

int numa_available(void)
{
if (get_mempolicy(NULL, NULL, 0, 0, 0) < 0 && (errno == ENOSYS || errno == EPERM))
return -1;
return 0;
}

pg_numa_available is already calling numa_available.

But numactl 2.0.16 has this:

int numa_available(void)
{
if (get_mempolicy(NULL, NULL, 0, 0, 0) < 0 && errno == ENOSYS)
return -1;
return 0;
}

... which is not catching the "permission denied" error I am seeing.

So maybe PG should implement numa_available itself like that. (Or
accept the output difference so the regression tests are passing.)

Christoph

In response to

Browse pgsql-committers by date

  From Date Subject
Next Message Nathan Bossart 2025-10-16 16:32:07 pgsql: Remove partColsUpdated.
Previous Message Tomas Vondra 2025-10-16 15:09:59 Re: failed NUMA pages inquiry status: Operation not permitted

Browse pgsql-hackers by date

  From Date Subject
Next Message Philip Alger 2025-10-16 15:22:01 Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement
Previous Message Tomas Vondra 2025-10-16 15:09:59 Re: failed NUMA pages inquiry status: Operation not permitted