Моя цель - узнать идентификатор процесса страниц, которые выгружаются. Функция ядра Linux swap_writepage()
принимает указатель на страницу структуры как часть формального аргумента при замене страницы в резервном хранилище. Все операции подкачки выполняются процессом "kswapd". Мне нужно узнать pid(s) процессов, страница которых передается в качестве аргумента в функцию swap_writepage()
. Чтобы получить это, я смог найти все записи таблицы страниц, связанные с этой страницей, используя структуры rmap.
Как я могу получить pid из pte или из страницы структуры? Я использовал systemtap для получения значения указателя страницы структуры, полученного в функции swap_writepage()
в качестве аргумента. Кроме того, функция pid()
печатает pid текущего запущенного процесса, а не pid процесса, которому принадлежит эта страница, что всегда дает процесс kswapd.