Re: failed NUMA pages inquiry status: Operation not permitted
| От | Christoph Berg | 
|---|---|
| Тема | Re: failed NUMA pages inquiry status: Operation not permitted | 
| Дата | |
| Msg-id | aPENGAkcrLyB_NLC@msg.df7cb.de обсуждение исходный текст  | 
		
| Ответ на | Re: failed NUMA pages inquiry status: Operation not permitted (Christoph Berg <myon@debian.org>) | 
| Ответы | 
                	
            		Re: failed NUMA pages inquiry status: Operation not permitted
            		
            		 Re: failed NUMA pages inquiry status: Operation not permitted  | 
		
| Список | 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 по дате отправления: