[RFC][PATCH] don't show pgoff of vma if vma is pure ANON (was Re:mmotm 2009-01-12-16-53 uploaded)

From: KAMEZAWA Hiroyuki
Date: Wed Jan 14 2009 - 02:24:04 EST


On Tue, 13 Jan 2009 09:05:28 -0800
Mike Waychison <mikew@xxxxxxxxxx> wrote:


> > ===================================================================
> > --- mmotm-2.6.29-Jan12.orig/fs/exec.c
> > +++ mmotm-2.6.29-Jan12/fs/exec.c
> > @@ -509,7 +509,7 @@ static int shift_arg_pages(struct vm_are
> > unsigned long length = old_end - old_start;
> > unsigned long new_start = old_start - shift;
> > unsigned long new_end = old_end - shift;
> > - unsigned long new_pgoff = new_start >> PAGE_SHIFT;
> > + unsigned long new_pgoff = vma->vm_pgoff;
> > struct mmu_gather *tlb;
> >
> > BUG_ON(new_start > new_end);
> >
>
> This patch is just reverting the behaviour back to having a 64bit pgoff.
> Best just reverting the patch for the time being.
>
Hmm, is this brutal ?

==
Recently, it's argued that what proc/pid/maps shows is ugly when a
32bit binary runs on 64bit host.

/proc/pid/maps outputs vma's pgoff member but vma->pgoff is of no use
information is the vma is for ANON.
By this patch, /proc/pid/maps shows just 0 if no file backing store.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
---
Index: mmotm-2.6.29-Jan13/fs/proc/task_mmu.c
===================================================================
--- mmotm-2.6.29-Jan13.orig/fs/proc/task_mmu.c
+++ mmotm-2.6.29-Jan13/fs/proc/task_mmu.c
@@ -220,7 +220,8 @@ static void show_map_vma(struct seq_file
flags & VM_WRITE ? 'w' : '-',
flags & VM_EXEC ? 'x' : '-',
flags & VM_MAYSHARE ? 's' : 'p',
- ((loff_t)vma->vm_pgoff) << PAGE_SHIFT,
+ (!vma->vm_file)? 0 :
+ ((loff_t)vma->vm_pgoff) << PAGE_SHIFT,
MAJOR(dev), MINOR(dev), ino, &len);

/*
Index: mmotm-2.6.29-Jan13/fs/proc/task_nommu.c
===================================================================
--- mmotm-2.6.29-Jan13.orig/fs/proc/task_nommu.c
+++ mmotm-2.6.29-Jan13/fs/proc/task_nommu.c
@@ -143,7 +143,8 @@ static int nommu_vma_show(struct seq_fil
flags & VM_WRITE ? 'w' : '-',
flags & VM_EXEC ? 'x' : '-',
flags & VM_MAYSHARE ? flags & VM_SHARED ? 'S' : 's' : 'p',
- (unsigned long long) vma->vm_pgoff << PAGE_SHIFT,
+ (!vma->vm_file) ? 0 :
+ (unsigned long long) vma->vm_pgoff << PAGE_SHIFT,
MAJOR(dev), MINOR(dev), ino, &len);

if (file) {

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/