From: Christoph Berg <myon@debian.org>
To: Tomas Vondra <tomas@vondra.me>
Cc: Jakub Wartak <jakub.wartak@enterprisedb.com>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: failed NUMA pages inquiry status: Operation not permitted
Date: Thu, 16 Oct 2025 17:19:52 +0200
Message-ID: <aPENGAkcrLyB_NLC@msg.df7cb.de> (raw)
In-Reply-To: <aPEJ7yH7ZJAF_MYW@msg.df7cb.de>
References: <E1u1tr8-003BbN-2E@gemulon.postgresql.org>
<aPDZOxjrmEo_1JRG@msg.df7cb.de>
<7bbc582b-cc70-4a6f-bbf2-b5fd9b13a867@vondra.me>
<aPEHINwaAxsQNAIP@msg.df7cb.de>
<aPEJ7yH7ZJAF_MYW@msg.df7cb.de>
> 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: myon@debian.org, tomas@vondra.me, jakub.wartak@enterprisedb.com, pgsql-hackers@lists.postgresql.org
Subject: Re: failed NUMA pages inquiry status: Operation not permitted
In-Reply-To: <aPENGAkcrLyB_NLC@msg.df7cb.de>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox