Messages in this thread | | | Date | Thu, 28 Feb 2008 08:41:44 -0600 | From | YM Yen <> | Subject | Walking User mode pages |
| |
hi,
I am a newbie to Linux kernel, so please forgive me if the question is stupid.
To understand the swapping system, I decided to write a module to scan every task_struct using for_each_process() checking whether or not the page pointed by the pte is swapped out. To get the linear address address of the pte, I did something similar to "pgd_offset << PGDIR_SHIFT + pud_offset << PUD_SHIFT + pmd_offset << PMDSHIFT + pte_offset << PAGE_SHIFT". The offset for each level is simply the iteration of the walking of the table ranging from 0 to PTRS_PER_(PGD, PUD, PMD, PTE) depending on the table. However, the result of the calculation doesn't match anything in the /proc/<pid>/maps.
Is this to be expected? If that's the case, how can I find out what's in the swap file. Thanks in advance.
YM
| |