averiguar qué páginas de memoria son propiedad del kernel

averiguar qué páginas de memoria son propiedad del kernel

Puedo obtener un maravilloso mapa de memoria de todos los procesos con el comando de Linux.

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

Parece que

...
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  
...

Aquí se fusionan los mapas de memoria de todos los procesos. Pero me falta la información de dónde tiene el kernel sus páginas de memoria. ¿Existe una herramienta similar para el "mapa de memoria completo"?

Respuesta1

Tu orden no tiene mucho sentido. Las direcciones reportadas por pmappara cada proceso sólo son válidas en el propio espacio de direcciones de estos procesos, es decir, en su memoria virtual. Se "superpondrán" aunque técnicamente corresponden a páginas diferentes. Algunos de ellos no estarán en la RAM sino en el disco.

Por otro lado, las páginas propiedad del kernel se almacenan en la memoria física.

Respuesta2

Un mejor enfoque sería utilizar sysrq.

Ejecute lo siguiente y verifique su /var/log/messages.

# echo m > /proc/sysrq-trigger

Esto le daría un volcado de memoria por zonas. Pagar siguiendo la URL

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

información relacionada