Voltar à lista
Linux x86_64Sistema & diversos#309

getcpu

Consulta em qual CPU e nó NUMA a thread chamadora está executando neste instante.

Descrição

Informação inerentemente instável (a thread pode migrar de CPU logo depois da chamada), mas útil como dica para otimizações sensíveis a NUMA/cache. Também exposta via vDSO para evitar o custo de uma troca de contexto completa.

man 2

Assinatura

int getcpu(unsigned int * cpu, unsigned int * node);

Parâmetros

ParâmetroTipoDescrição
cpuunsigned int *Se não for NULL, recebe o número da CPU atual.
nodeunsigned int *Se não for NULL, recebe o nó NUMA atual.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1cpuunsigned int *
rsiargumento 2nodeunsigned int *

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
ENOSYS(38)
Chamada de sistema não implementada nesta versão do kernel.

Relacionadas