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âmetro | Tipo | Descrição |
|---|---|---|
| pid | int | Processo alvo; 0 significa o chamador. |
| maxnode | unsigned long | Número de bits válidos nas máscaras de nó. |
| old_nodes | const unsigned long * | Nós de origem das páginas a mover. |
| new_nodes | const unsigned long * | Nós de destino. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pidint |
| rsi | argumento 2 | maxnodeunsigned long |
| rdx | argumento 3 | old_nodesconst unsigned long * |
| r10 | argumento 4 | new_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.