descubra quais páginas de memória pertencem ao kernel

descubra quais páginas de memória pertencem ao kernel

Posso obter um maravilhoso mapa de memória de todos os processos com o comando Linux

pmap $(ps -A | awk '{print $1}'|grep -v PID) | sort | grep \^0

Parece

...
00007fd6dbf45000      4K rw---  /lib/libnss_compat-2.11.1.so 
00007fd6dbf46000   1524K r-x--  /lib/libc-2.11.1.so
00007fd6dc0c3000   2044K -----  /lib/libc-2.11.1.so  
...

Os mapas de memória de todos os processos são mesclados aqui. Mas estou faltando a informação de onde o kernel tem suas páginas de memória. Existe uma ferramenta semelhante para o "mapa de memória completo"?

Responder1

Seu comando não faz muito sentido. Os endereços informados por pmappara cada processo são válidos apenas no próprio espaço de endereçamento desses processos, ou seja, em sua memória virtual. Eles irão se "sobrepor", embora tecnicamente correspondam a páginas diferentes. Alguns deles não estarão na RAM, mas no disco.

As páginas pertencentes ao uso do kernel são, por outro lado, armazenadas na memória física.

Responder2

A melhor abordagem seria usar o sysrq.

Execute a seguir e verifique seu /var/log/messages.

# echo m > /proc/sysrq-trigger

Isso lhe daria um despejo de memória por zona. Confira o seguinte URL

https://www.kernel.org/doc/gorman/html/understand/understand005.html

informação relacionada