Voltar à lista
Linux x86_64Memória#237

mbind

Define a política de alocação NUMA (Non-Uniform Memory Access) para uma região de memória.

Descrição

Em máquinas com múltiplos nós NUMA, controla de qual nó de memória física as páginas dessa região devem ser alocadas — crítico para desempenho em bancos de dados e cargas de alto desempenho sensíveis à localidade de memória.

Header: numaif.hman 2

Assinatura

long mbind(
    void * addr,
    unsigned long len,
    int mode,
    const unsigned long * nodemask,
    unsigned long maxnode,
    unsigned int flags
);

Parâmetros

ParâmetroTipoDescrição
addrvoid *Início da região, alinhado ao tamanho de página.
lenunsigned longTamanho da região.
modeintMPOL_DEFAULT, MPOL_BIND, MPOL_INTERLEAVE, MPOL_PREFERRED, etc.
nodemaskconst unsigned long *Máscara de bits dos nós NUMA elegíveis.
maxnodeunsigned longNúmero de bits válidos em `nodemask`.
flagsunsigned intMPOL_MF_STRICT, MPOL_MF_MOVE, MPOL_MF_MOVE_ALL.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1addrvoid *
rsiargumento 2lenunsigned long
rdxargumento 3modeint
r10argumento 4nodemaskconst unsigned long *
r8argumento 5maxnodeunsigned long
r9argumento 6flagsunsigned 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).
EINVAL(22)
Argumento inválido.
EIO(5)
Erro de E/S físico.
ENOMEM(12)
Memória insuficiente para completar a operação.

Relacionadas