From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759617AbbA3GOy (ORCPT ); Fri, 30 Jan 2015 01:14:54 -0500 Received: from cnbjrel01.sonyericsson.com ([219.141.167.165]:17238 "EHLO cnbjrel01.sonyericsson.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752630AbbA3GOw convert rfc822-to-8bit (ORCPT ); Fri, 30 Jan 2015 01:14:52 -0500 From: "Wang, Yalin" To: "'akpm@linux-foundation.org'" , "'kirill.shutemov@linux.intel.com'" , "'oleg@redhat.com'" , "'gorcunov@openvz.org'" , "'n-horiguchi@ah.jp.nec.com'" , "'pfeiner@google.com'" , "'aquini@redhat.com'" , "'linux-kernel@vger.kernel.org'" Date: Fri, 30 Jan 2015 14:14:30 +0800 Subject: [RFC] mm:change /proc/smaps caculation behavior Thread-Topic: [RFC] mm:change /proc/smaps caculation behavior Thread-Index: AdA8VAGzBKTEfn7kR/6B5DTZrEaegQ== Message-ID: <35FD53F367049845BC99AC72306C23D1044A02027E04@CNBJMBX05.corpusers.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mcafeedlp-tag-0: {224703BC-758A-11E4-982F-0DF611A26A07} x-mcafeedlp-tagged: True acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch change smaps pagetable walk behavior, to make sure not skip VM_PFNMAP pagetables, so that we can calculate COW pages of VM_PFNMAP as normal pages. Signed-off-by: Yalin Wang --- fs/proc/task_mmu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index c7267e9..00a5b73 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -503,6 +503,15 @@ static void smaps_pte_entry(pte_t *pte, unsigned long addr, smaps_account(mss, page, PAGE_SIZE, pte_young(*pte), pte_dirty(*pte)); } +static int smaps_test_walk(unsigned long addr, unsigned long next, + struct mm_walk *walk) +{ + /* + * don't skip VM_PFNMAP, so that we can caculate some COW pages. + */ + return 0; +} + #ifdef CONFIG_TRANSPARENT_HUGEPAGE static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, struct mm_walk *walk) @@ -616,6 +625,7 @@ static int show_smap(struct seq_file *m, void *v, int is_pid) struct mem_size_stats mss; struct mm_walk smaps_walk = { .pmd_entry = smaps_pte_range, + .test_walk = smaps_test_walk, .mm = vma->vm_mm, .private = &mss, }; -- 2.2.2