Walking User mode pages

From: YM Yen
Date: Thu Feb 28 2008 - 09:36:30 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/