В ядре Linux, учитывая task_struct
mm
Я могу получить доступ к списку процессов vm_area_struct
s. Учитывая эти vm_area_struct
s, как мне получить struct page
s, которые на самом деле соответствуют этому vma?Виртуальная область на страницы
Я пробовал искать функции в mm/memory.c и т.п., но я был в растерянности.
Редактировать: идея состоит в том, чтобы найти, какие страницы в vma находятся в настоящее время в памяти, а какие нет. Но я не хочу, чтобы кто-то сказал мне, как это сделать, поскольку это небольшая часть задания на домашнюю работу, которое мне нужно выяснить самостоятельно. Но я не могу понять, как найти страницы, которые соответствуют этому vma. Если я могу найти страницы, я полагаю, что могу проверить, имеют ли они действительный pfn или нет.
Я считаю, что get_user_pages() генерирует ошибку страницы, когда он находит страницу, отсутствующую в физической памяти. Но я думаю, что follow_page() может сделать трюк. Дай мне проверить. – FreeMemory 2008-11-18 19:45:10