Linux x86_64Arquivos & E/S#451
cachestat
Consulta estatísticas de page cache (páginas em cache, sujas, escrevendo) para um intervalo de um arquivo.
Descrição
Fornece de forma direta e eficiente informação que antes exigia técnicas indiretas como `mincore` sobre um mapeamento mmap — útil para ferramentas de observabilidade de I/O e cache.
man 2Desde o kernel 6.5
Assinatura
int cachestat(
unsigned int fd,
struct cachestat_range * cstat_range,
struct cachestat * cstat,
unsigned int flags
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| fd | unsigned int | Descritor do arquivo a consultar. |
| cstat_range | struct cachestat_range * | Intervalo do arquivo (offset e tamanho) a considerar. |
| cstat | struct cachestat * | Recebe as estatísticas (páginas em cache, dirty, em escrita, etc.). |
| flags | unsigned int | Reservado; deve ser 0. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | fdunsigned int |
| rsi | argumento 2 | cstat_rangestruct cachestat_range * |
| rdx | argumento 3 | cstatstruct cachestat * |
| r10 | argumento 4 | flagsunsigned 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.
- EOPNOTSUPP(95)
- Operação não suportada nesse socket/arquivo (também ENOTSUP).