From: Cyrill Gorcunov <gorcunov@openvz.org>
To: akpm@linux-foundation.org
Cc: a.p.zijlstra@chello.nl, xemul@parallels.com,
sfr@canb.auug.org.au, LKML <linux-kernel@vger.kernel.org>
Subject: Re: + procfs-add-vmflags-field-in-smaps-output-v3-fix-2.patch added to -mm tree
Date: Wed, 24 Oct 2012 12:45:15 +0400 [thread overview]
Message-ID: <20121024084515.GB30983@moon> (raw)
In-Reply-To: <20121023220300.1185C200057@hpza10.eem.corp.google.com>
On Tue, Oct 23, 2012 at 03:02:59PM -0700, akpm@linux-foundation.org wrote:
>
> The patch titled
> Subject: procfs-add-vmflags-field-in-smaps-output-v3-fix-2
> has been added to the -mm tree. Its filename is
> procfs-add-vmflags-field-in-smaps-output-v3-fix-2.patch
>
> ------------------------------------------------------
> From: Cyrill Gorcunov <gorcunov@openvz.org>
> Subject: procfs-add-vmflags-field-in-smaps-output-v3-fix-2
>
> Use designated init to assign "??" mnemonic on unknown flags.
>
> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
> Cc: Pavel Emelyanov <xemul@parallels.com>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Hi Andrew, could you stack the patch below on top, this one
should be a final for sure ;-)
---
From: Cyrill Gorcunov <gorcunov@openvz.org>
Subject: procfs-add-vmflags-field-in-smaps-output-v3-fix-on-top-2
Make assignment more readable [by peterz@] and fix bit
tests (we need unsigned long here explicitly stated).
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
fs/proc/task_mmu.c | 63 ++++++++++++++++++++++++++++-------------------------
1 file changed, 34 insertions(+), 29 deletions(-)
Index: linux-2.6.git/fs/proc/task_mmu.c
===================================================================
--- linux-2.6.git.orig/fs/proc/task_mmu.c
+++ linux-2.6.git/fs/proc/task_mmu.c
@@ -482,6 +482,8 @@ static int smaps_pte_range(pmd_t *pmd, u
static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
{
+#define __VM_FLAG(_f, _s) [ilog2(_f)] = {(const char [2]){_s}}
+
/*
* Don't forget to update Documentation/ on changes.
*/
@@ -491,46 +493,49 @@ static void show_smap_vma_flags(struct s
/*
* In case if we meet a flag we don't know about.
*/
- [0 ... (BITS_PER_LONG-1)] = { {'?', '?'} },
+ [0 ... (BITS_PER_LONG-1)] = { (const char [2]){"??"} },
- [ilog2(VM_READ)] = { {'r', 'd'} },
- [ilog2(VM_WRITE)] = { {'w', 'r'} },
- [ilog2(VM_EXEC)] = { {'e', 'x'} },
- [ilog2(VM_SHARED)] = { {'s', 'h'} },
- [ilog2(VM_MAYREAD)] = { {'m', 'r'} },
- [ilog2(VM_MAYWRITE)] = { {'m', 'w'} },
- [ilog2(VM_MAYEXEC)] = { {'m', 'e'} },
- [ilog2(VM_MAYSHARE)] = { {'m', 's'} },
- [ilog2(VM_GROWSDOWN)] = { {'g', 'd'} },
- [ilog2(VM_PFNMAP)] = { {'p', 'f'} },
- [ilog2(VM_DENYWRITE)] = { {'d', 'w'} },
- [ilog2(VM_LOCKED)] = { {'l', 'o'} },
- [ilog2(VM_IO)] = { {'i', 'o'} },
- [ilog2(VM_SEQ_READ)] = { {'s', 'r'} },
- [ilog2(VM_RAND_READ)] = { {'r', 'r'} },
- [ilog2(VM_DONTCOPY)] = { {'d', 'c'} },
- [ilog2(VM_DONTEXPAND)] = { {'d', 'e'} },
- [ilog2(VM_ACCOUNT)] = { {'a', 'c'} },
- [ilog2(VM_NORESERVE)] = { {'n', 'r'} },
- [ilog2(VM_HUGETLB)] = { {'h', 't'} },
- [ilog2(VM_NONLINEAR)] = { {'n', 'l'} },
- [ilog2(VM_ARCH_1)] = { {'a', 'r'} },
- [ilog2(VM_DONTDUMP)] = { {'d', 'd'} },
- [ilog2(VM_MIXEDMAP)] = { {'m', 'm'} },
- [ilog2(VM_HUGEPAGE)] = { {'h', 'g'} },
- [ilog2(VM_NOHUGEPAGE)] = { {'n', 'h'} },
- [ilog2(VM_MERGEABLE)] = { {'m', 'g'} },
+ __VM_FLAG(VM_READ, "rd"),
+ __VM_FLAG(VM_WRITE, "wr"),
+ __VM_FLAG(VM_EXEC, "ex"),
+ __VM_FLAG(VM_SHARED, "sh"),
+ __VM_FLAG(VM_MAYREAD, "mr"),
+ __VM_FLAG(VM_MAYWRITE, "mw"),
+ __VM_FLAG(VM_MAYEXEC, "me"),
+ __VM_FLAG(VM_MAYSHARE, "ms"),
+ __VM_FLAG(VM_GROWSDOWN, "gd"),
+ __VM_FLAG(VM_PFNMAP, "pf"),
+ __VM_FLAG(VM_DENYWRITE, "dw"),
+ __VM_FLAG(VM_LOCKED, "lo"),
+ __VM_FLAG(VM_IO, "io"),
+ __VM_FLAG(VM_SEQ_READ, "sr"),
+ __VM_FLAG(VM_RAND_READ, "rr"),
+ __VM_FLAG(VM_DONTCOPY, "dc"),
+ __VM_FLAG(VM_DONTEXPAND,"de"),
+ __VM_FLAG(VM_ACCOUNT, "ac"),
+ __VM_FLAG(VM_NORESERVE, "nr"),
+ __VM_FLAG(VM_HUGETLB, "ht"),
+ __VM_FLAG(VM_NONLINEAR, "nl"),
+ __VM_FLAG(VM_ARCH_1, "ar"),
+ __VM_FLAG(VM_DONTDUMP, "dd"),
+ __VM_FLAG(VM_MIXEDMAP, "mm"),
+ __VM_FLAG(VM_HUGEPAGE, "hg"),
+ __VM_FLAG(VM_NOHUGEPAGE,"nh"),
+ __VM_FLAG(VM_MERGEABLE, "mg"),
};
size_t i;
seq_puts(m, "VmFlags: ");
for (i = 0; i < BITS_PER_LONG; i++) {
- if (vma->vm_flags & (1 << i))
+ if (vma->vm_flags & (1ul << i)) {
seq_printf(m, "%c%c ",
mnemonics[i].l[0],
mnemonics[i].l[1]);
+ }
}
seq_putc(m, '\n');
+
+#undef __VM_FLAG
}
static int show_smap(struct seq_file *m, void *v, int is_pid)
next parent reply other threads:[~2012-10-24 8:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20121023220300.1185C200057@hpza10.eem.corp.google.com>
2012-10-24 8:45 ` Cyrill Gorcunov [this message]
2012-10-24 9:24 ` + procfs-add-vmflags-field-in-smaps-output-v3-fix-2.patch added to -mm tree Peter Zijlstra
2012-10-24 9:49 ` Cyrill Gorcunov
2012-10-24 9:47 ` Stephen Rothwell
2012-10-24 9:59 ` Cyrill Gorcunov
2012-10-24 10:26 ` Stephen Rothwell
2012-10-24 10:39 ` Cyrill Gorcunov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121024084515.GB30983@moon \
--to=gorcunov@openvz.org \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sfr@canb.auug.org.au \
--cc=xemul@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).