On Tue, May 1, 2012 at 1:56 PM, Konstantin Khlebnikov <khlebnikov@xxxxxxxxxx> wrote: > KOSAKI Motohiro wrote: >> >> On Mon, Apr 30, 2012 at 7:29 AM, Konstantin Khlebnikov >> <khlebnikov@xxxxxxxxxx> wrote: >>> >>> Currently, nonlinear mappings can not be distinguished from ordinary >>> mappings. >>> This patch adds into /proc/pid/smaps line "Nonlinear:<size> kB", where >>> size is >>> amount of nonlinear ptes in vma, this line appears only if VM_NONLINEAR >>> is set. >>> This information may be useful not only for checkpoint/restore project. >>> >>> Signed-off-by: Konstantin Khlebnikov<khlebnikov@xxxxxxxxxx> >>> Requested-by: Pavel Emelyanov<xemul@xxxxxxxxxxxxx> >>> --- >>> fs/proc/task_mmu.c | 12 ++++++++++++ >>> 1 file changed, 12 insertions(+) >>> >>> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c >>> index acee5fd..b1d9729 100644 >>> --- a/fs/proc/task_mmu.c >>> +++ b/fs/proc/task_mmu.c >>> @@ -393,6 +393,7 @@ struct mem_size_stats { >>> unsigned long anonymous; >>> unsigned long anonymous_thp; >>> unsigned long swap; >>> + unsigned long nonlinear; >>> u64 pss; >>> }; >>> >>> @@ -402,6 +403,7 @@ static void smaps_pte_entry(pte_t ptent, unsigned >>> long addr, >>> { >>> struct mem_size_stats *mss = walk->private; >>> struct vm_area_struct *vma = mss->vma; >>> + pgoff_t pgoff = linear_page_index(vma, addr); >>> struct page *page = NULL; >>> int mapcount; >>> >>> @@ -414,6 +416,9 @@ static void smaps_pte_entry(pte_t ptent, unsigned >>> long addr, >>> mss->swap += ptent_size; >>> else if (is_migration_entry(swpent)) >>> page = migration_entry_to_page(swpent); >>> + } else if (pte_file(ptent)) { >>> + if (pte_to_pgoff(ptent) != pgoff) >>> + mss->nonlinear += ptent_size; >> >> >> I think this is not equal to our non linear mapping definition. Even if >> pgoff is equal to linear mapping case, it is non linear. I.e. nonlinear is >> vma attribute. Why do you want to introduce different definition? > > VMA attribute can be determined via presence of this field, > without VM_NONLINEAR it does not appears. I meant, is there any worth? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href