Voltar à lista
Linux x86_64Memória#256

migrate_pages

Move as páginas de memória de um processo de um conjunto de nós NUMA para outro.

Descrição

Permite rebalancear memória entre nós NUMA depois que o processo já alocou memória — por exemplo, após uma mudança de afinidade de CPU.

man 2Desde o kernel 2.6.16

Assinatura

long migrate_pages(
    int pid,
    unsigned long maxnode,
    const unsigned long * old_nodes,
    const unsigned long * new_nodes
);

Parâmetros

ParâmetroTipoDescrição
pidintProcesso alvo; 0 significa o chamador.
maxnodeunsigned longNúmero de bits válidos nas máscaras de nó.
old_nodesconst unsigned long *Nós de origem das páginas a mover.
new_nodesconst unsigned long *Nós de destino.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1pidint
rsiargumento 2maxnodeunsigned long
rdxargumento 3old_nodesconst unsigned long *
r10argumento 4new_nodesconst unsigned long *

Valor de retorno

Número de páginas que não puderam ser movidas em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EINVAL(22)
Argumento inválido.
EPERM(1)
Operação não permitida (falta de privilégio).
ESRCH(3)
Processo inexistente.

Relacionadas