Messages in this thread Patch in this message | | | Date | Mon, 28 Dec 2009 13:46:19 +0900 | From | Minchan Kim <> | Subject | [PATCH -mmotm-2009-12-10-17-19] Fix wrong rss count of smaps |
| |
I am not sure we have to account zero page with file_rss. Hugh and Kame's new zero page doesn't do it. As side effect of this, we can prevent innocent process which have a lot of zero page when OOM happens. (But I am not sure there is a process like this :) So I think not file_rss counting is not bad.
RSS counting zero page with file_rss helps any program using smaps? If we have to keep the old behavior, I have to remake this patch.
== CUT_HERE ==
Long time ago, We regards zero page as file_rss and vm_normal_page doesn't return NULL.
But now, we reinstated ZERO_PAGE and vm_normal_page's implementation can return NULL in case of zero page. Also we don't count it with file_rss any more.
Then, RSS and PSS can't be matched. For consistency, Let's ignore zero page in smaps_pte_range.
CC: Matt Mackall <mpm@selenic.com> Signed-off-by: Minchan Kim <minchan.kim@gmail.com> --- fs/proc/task_mmu.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 47c03f4..f277c4a 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -361,12 +361,11 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, if (!pte_present(ptent)) continue; - mss->resident += PAGE_SIZE; - page = vm_normal_page(vma, addr, ptent); if (!page) continue; + mss->resident += PAGE_SIZE; /* Accumulate the size in pages that have been accessed. */ if (pte_young(ptent) || PageReferenced(page)) mss->referenced += PAGE_SIZE; -- 1.5.6.3
-- Kind regards, Minchan Kim
| |