Re: failed NUMA pages inquiry status: Operation not permitted - Mailing list pgsql-hackers

From Christoph Berg
Subject Re: failed NUMA pages inquiry status: Operation not permitted
Date
Msg-id aPENGAkcrLyB_NLC@msg.df7cb.de
Whole thread Raw
In response to Re: failed NUMA pages inquiry status: Operation not permitted  (Christoph Berg <myon@debian.org>)
List 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



pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: failed NUMA pages inquiry status: Operation not permitted
Next
From: Philip Alger
Date:
Subject: Re: [PATCH] Add pg_get_trigger_ddl() to retrieve the CREATE TRIGGER statement