Отладка памяти: как получить информацию о заблокированных страницах в пространстве пользователя / ядра в Linux - PullRequest
0 голосов
/ 04 марта 2019

Есть ли способ получить информацию о заблокированных страницах (страницах виртуальной памяти) в пользовательском пространстве / пространстве ядра в linux.

Я хочу узнать подробности, например: Кто заблокировал страницы?сколько страниц заблокировано?Имя процесса, который заблокировал страницу?

Также дайте мне знать методы отладки памяти в пространстве ядра, а также в пространстве пользователя.

1 Ответ

0 голосов
/ 08 апреля 2019

Для каждой страницы в памяти, которой присвоен флаг, страница виртуальной памяти блокируется с помощью API mlock, mlockall() и т. Д., Ей назначается флаг VM_LOCKED для страницы.

Две опции длязнать детали заблокированных страниц:

  1. Использовать cat /sys/kernel/debug/page_owner >> page_owner.txt Чтобы включить отладку: kernel menuconfig PAGE_OWNER=y добавить "page_owner=on" для загрузки cmdline.cat /sys/kernel/debug/page_owner >> page_owner.txt

  2. В исходном коде linux введите: /tool/vm/page-types.c, затем скомпилируйте его и повторите все записи pid в /proc/ и используйте следующую опцию для приложения: ./test -p $PID -L >> test_output.txt.Он выдаст вам все детали страницы с флагами, после чего вы сможете найти заблокированные страницы в памяти.

...