Re: [Help] : RSS/PSS showing 0 during smaps for Xorg
From: Hugh Dickins <hughd@google.com>
Date: 2012-01-26 01:00:35
Also in:
lkml
On Tue, 24 Jan 2012, PINTU KUMAR wrote:
Is there a way to convert our mapped pages to a normal pages. I tried pfn_to_page() but no effect. I mean the page is considered normal only if it is associated with "struct page" right??? Is is possible to convert these pages to a normal struct pages so that we can get the Rss/Pss value??
I don't understand why you are so anxious to see non-0 numbers there. I don't know if the pages you are mapping with remap_pfn_range() are ordinary pages in normal memory, and so already have struct pages, or not.
Also, the VM_PFNMAP is being set for all dirvers during remap_pfn_range and stills shows Rss/Pss for other drivers.
I'm surprised. It is possible to set up a private-writable VM_PFNMAP area, which can then contain ordinary private copies of the underlying pages, and these copies will count to Rss. But I thought that was very unusual. You don't mention which drivers these are that use remap_pfn_range yet show Rss (and I don't particularly want to spend time researching them). I can see three or four places in drivers/ where VM_PFNMAP is set, perhaps without going through remap_pfn_range(): that seems prone to error, I wouldn't recommend going that route.
Then why it is not shown for our driver? How to avoid remap_pfn_range to not to set VM_PFNMAP for our driver?
If these are ordinary pages with struct pages, then you could probably use a loop of vm_insert_page()s to insert them at mmap time, or a fault routine to insert them on fault. But as I said, I don't know if this memory is part of the ordinary page pool or not. Really, the question has to be, why do you need to see non-0s there? Hugh