On Mon, May 06, 2019 at 11:53:43AM -0400, Joel Savitz wrote: > There is currently no easy and architecture-independent way to find the > lowest unusable virtual address available to a process without > brute-force calculation. This patch allows a user to easily retrieve > this value via /proc/<pid>/status. > > Using this patch, any program that previously needed to waste cpu cycles > recalculating a non-sensitive process-dependent value already known to > the kernel can now be optimized to use this mechanism. > > Signed-off-by: Joel Savitz <jsavitz@xxxxxxxxxx> > --- > 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 lowest unusable address in process virtual memory Can we change this help text to "size of process' virtual address space memory" ? > 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 > Acked-by: Rafael Aquini <aquini@xxxxxxxxxx>