linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4] fs/proc: add VmTaskSize field to /proc/$$/status
@ 2019-06-13 14:54 Joel Savitz
  2019-06-13 19:29 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Joel Savitz @ 2019-06-13 14:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: Joel Savitz, Alexey Dobriyan, Andrew Morton, Vlastimil Babka,
	Aneesh Kumar K.V, Michael Ellerman, Ram Pai, Andrea Arcangeli,
	Huang Ying, Sandeep Patil, Rafael Aquini, linux-mm,
	linux-fsdevel

The kernel provides no architecture-independent mechanism to get the
size of the virtual address space of a task (userspace process) without
brute-force calculation. This patch allows a user to easily retrieve
this value via a new VmTaskSize entry in /proc/$$/status.

Signed-off-by: Joel Savitz <jsavitz@redhat.com>
---
 Documentation/filesystems/proc.txt | 2 ++
 fs/proc/task_mmu.c                 | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 66cad5c86171..1c6a912e3975 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -187,6 +187,7 @@ read the file /proc/PID/status:
   VmLib:      1412 kB
   VmPTE:        20 kb
   VmSwap:        0 kB
+  VmTaskSize:	137438953468 kB
   HugetlbPages:          0 kB
   CoreDumping:    0
   THP_enabled:	  1
@@ -263,6 +264,7 @@ Table 1-2: Contents of the status files (as of 4.19)
  VmPTE                       size of page table entries
  VmSwap                      amount of swap used by anonymous private data
                              (shmem swap usage is not included)
+ VmTaskSize                  size of task (userspace process) vm space
  HugetlbPages                size of hugetlb memory portions
  CoreDumping                 process's memory is currently being dumped
                              (killing the process may lead to a corrupted core)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 95ca1fe7283c..0af7081f7b19 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -74,6 +74,8 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
 	seq_put_decimal_ull_width(m,
 		    " kB\nVmPTE:\t", mm_pgtables_bytes(mm) >> 10, 8);
 	SEQ_PUT_DEC(" kB\nVmSwap:\t", swap);
+	seq_put_decimal_ull_width(m,
+		    " kB\nVmTaskSize:\t", mm->task_size >> 10, 8);
 	seq_puts(m, " kB\n");
 	hugetlb_report_usage(m, mm);
 }
-- 
2.18.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v4] fs/proc: add VmTaskSize field to /proc/$$/status
  2019-06-13 14:54 [PATCH v4] fs/proc: add VmTaskSize field to /proc/$$/status Joel Savitz
@ 2019-06-13 19:29 ` Andrew Morton
  2019-06-15 14:55   ` Joel Savitz
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2019-06-13 19:29 UTC (permalink / raw)
  To: Joel Savitz
  Cc: linux-kernel, Alexey Dobriyan, Vlastimil Babka, Aneesh Kumar K.V,
	Michael Ellerman, Ram Pai, Andrea Arcangeli, Huang Ying,
	Sandeep Patil, Rafael Aquini, linux-mm, linux-fsdevel

On Thu, 13 Jun 2019 10:54:50 -0400 Joel Savitz <jsavitz@redhat.com> wrote:

> The kernel provides no architecture-independent mechanism to get the
> size of the virtual address space of a task (userspace process) without
> brute-force calculation. This patch allows a user to easily retrieve
> this value via a new VmTaskSize entry in /proc/$$/status.

Why is access to ->task_size required?  Please fully describe the
use case.

> --- a/Documentation/filesystems/proc.txt
> +++ b/Documentation/filesystems/proc.txt
> @@ -187,6 +187,7 @@ read the file /proc/PID/status:
>    VmLib:      1412 kB
>    VmPTE:        20 kb
>    VmSwap:        0 kB
> +  VmTaskSize:	137438953468 kB
>    HugetlbPages:          0 kB
>    CoreDumping:    0
>    THP_enabled:	  1
> @@ -263,6 +264,7 @@ Table 1-2: Contents of the status files (as of 4.19)
>   VmPTE                       size of page table entries
>   VmSwap                      amount of swap used by anonymous private data
>                               (shmem swap usage is not included)
> + VmTaskSize                  size of task (userspace process) vm space

This is rather vague.  Is it the total amount of physical memory?  The
sum of all vma sizes, populated or otherwise?  Something else? 



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v4] fs/proc: add VmTaskSize field to /proc/$$/status
  2019-06-13 19:29 ` Andrew Morton
@ 2019-06-15 14:55   ` Joel Savitz
  0 siblings, 0 replies; 3+ messages in thread
From: Joel Savitz @ 2019-06-15 14:55 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kernel, Alexey Dobriyan, Vlastimil Babka, Aneesh Kumar K.V,
	Michael Ellerman, Ram Pai, Andrea Arcangeli, Huang Ying,
	Sandeep Patil, Rafael Aquini, linux-mm, linux-fsdevel

The most immediate use case is the optimization of an internal test,
but upon closer examination neither this patch nor the test itself
turn out to be worth pursuing.

Thank you for your time and constructive comments.

Best,
Joel Savitz


On Thu, Jun 13, 2019 at 3:30 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Thu, 13 Jun 2019 10:54:50 -0400 Joel Savitz <jsavitz@redhat.com> wrote:
>
> > The kernel provides no architecture-independent mechanism to get the
> > size of the virtual address space of a task (userspace process) without
> > brute-force calculation. This patch allows a user to easily retrieve
> > this value via a new VmTaskSize entry in /proc/$$/status.
>
> Why is access to ->task_size required?  Please fully describe the
> use case.
>
> > --- a/Documentation/filesystems/proc.txt
> > +++ b/Documentation/filesystems/proc.txt
> > @@ -187,6 +187,7 @@ read the file /proc/PID/status:
> >    VmLib:      1412 kB
> >    VmPTE:        20 kb
> >    VmSwap:        0 kB
> > +  VmTaskSize:        137438953468 kB
> >    HugetlbPages:          0 kB
> >    CoreDumping:    0
> >    THP_enabled:         1
> > @@ -263,6 +264,7 @@ Table 1-2: Contents of the status files (as of 4.19)
> >   VmPTE                       size of page table entries
> >   VmSwap                      amount of swap used by anonymous private data
> >                               (shmem swap usage is not included)
> > + VmTaskSize                  size of task (userspace process) vm space
>
> This is rather vague.  Is it the total amount of physical memory?  The
> sum of all vma sizes, populated or otherwise?  Something else?
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-06-15 14:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-13 14:54 [PATCH v4] fs/proc: add VmTaskSize field to /proc/$$/status Joel Savitz
2019-06-13 19:29 ` Andrew Morton
2019-06-15 14:55   ` Joel Savitz

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).