Messages in this thread | | | Date | Wed, 25 Jan 2012 16:59:41 -0800 (PST) | From | Hugh Dickins <> | Subject | Re: [Help] : RSS/PSS showing 0 during smaps for Xorg |
| |
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 | |