Voltar à lista
Linux x86_64Escalonamento#203

sched_setaffinity

Define a máscara de afinidade de CPU de um processo, restringindo em quais CPUs ele pode ser executado.

Descrição

Fixa (pin) um processo/thread a um subconjunto de CPUs, técnica usada para reduzir cache misses e jitter em cargas sensíveis a latência, ou para particionar CPUs entre workloads.

Header: sched.hman 2

Assinatura

int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t * mask);

Parâmetros

ParâmetroTipoDescrição
pidpid_tPID alvo; 0 significa o chamador.
cpusetsizesize_tTamanho em bytes da máscara `mask`.
maskconst cpu_set_t *Conjunto de CPUs permitidas.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1pidpid_t
rsiargumento 2cpusetsizesize_t
rdxargumento 3maskconst cpu_set_t *

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).
EINVAL(22)
Argumento inválido.
EPERM(1)
Operação não permitida (falta de privilégio).
ESRCH(3)
Processo inexistente.

Relacionadas