在Linux內核中,給定task_struct
的mm
我可以訪問進程的列表vm_area_struct
s。鑑於這些vm_area_struct
s,我如何獲得實際上對應於此vma的struct page
?虛擬區域至頁面
我試着在mm/memory.c之類尋找函數,但是我不知所措。
編輯:這個想法是找出vma中的哪些頁面當前在內存中,哪些不在內存中。但我不要希望有人告訴我如何做到這一點,因爲這是我需要自己弄清楚的家庭作業的一小部分。但我似乎無法弄清楚如何找到與這個vma相對應的頁面。如果我能找到頁面,我想我可以檢查它們是否有有效的pfn。
我相信,只要get_user_pages()發現頁面不存在於物理內存中就會產生頁面錯誤。但我認爲follow_page()可能會訣竅。讓我檢查一下。 – FreeMemory 2008-11-18 19:45:10