Merge branch 'mm-rst' into docs-next
[linux-block.git] / fs / proc / task_mmu.c
index 91d14c4ac04a19bd8f00248aa8e0fb3521652ede..333cda80c3ddc33f0da92bed999068b213f55464 100644 (file)
@@ -24,6 +24,8 @@
 #include <asm/tlbflush.h>
 #include "internal.h"
 
+#define SEQ_PUT_DEC(str, val) \
+               seq_put_decimal_ull_width(m, str, (val) << (PAGE_SHIFT-10), 8)
 void task_mem(struct seq_file *m, struct mm_struct *mm)
 {
        unsigned long text, lib, swap, anon, file, shmem;
@@ -53,39 +55,28 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
        lib = (mm->exec_vm << PAGE_SHIFT) - text;
 
        swap = get_mm_counter(mm, MM_SWAPENTS);
-       seq_printf(m,
-               "VmPeak:\t%8lu kB\n"
-               "VmSize:\t%8lu kB\n"
-               "VmLck:\t%8lu kB\n"
-               "VmPin:\t%8lu kB\n"
-               "VmHWM:\t%8lu kB\n"
-               "VmRSS:\t%8lu kB\n"
-               "RssAnon:\t%8lu kB\n"
-               "RssFile:\t%8lu kB\n"
-               "RssShmem:\t%8lu kB\n"
-               "VmData:\t%8lu kB\n"
-               "VmStk:\t%8lu kB\n"
-               "VmExe:\t%8lu kB\n"
-               "VmLib:\t%8lu kB\n"
-               "VmPTE:\t%8lu kB\n"
-               "VmSwap:\t%8lu kB\n",
-               hiwater_vm << (PAGE_SHIFT-10),
-               total_vm << (PAGE_SHIFT-10),
-               mm->locked_vm << (PAGE_SHIFT-10),
-               mm->pinned_vm << (PAGE_SHIFT-10),
-               hiwater_rss << (PAGE_SHIFT-10),
-               total_rss << (PAGE_SHIFT-10),
-               anon << (PAGE_SHIFT-10),
-               file << (PAGE_SHIFT-10),
-               shmem << (PAGE_SHIFT-10),
-               mm->data_vm << (PAGE_SHIFT-10),
-               mm->stack_vm << (PAGE_SHIFT-10),
-               text >> 10,
-               lib >> 10,
-               mm_pgtables_bytes(mm) >> 10,
-               swap << (PAGE_SHIFT-10));
+       SEQ_PUT_DEC("VmPeak:\t", hiwater_vm);
+       SEQ_PUT_DEC(" kB\nVmSize:\t", total_vm);
+       SEQ_PUT_DEC(" kB\nVmLck:\t", mm->locked_vm);
+       SEQ_PUT_DEC(" kB\nVmPin:\t", mm->pinned_vm);
+       SEQ_PUT_DEC(" kB\nVmHWM:\t", hiwater_rss);
+       SEQ_PUT_DEC(" kB\nVmRSS:\t", total_rss);
+       SEQ_PUT_DEC(" kB\nRssAnon:\t", anon);
+       SEQ_PUT_DEC(" kB\nRssFile:\t", file);
+       SEQ_PUT_DEC(" kB\nRssShmem:\t", shmem);
+       SEQ_PUT_DEC(" kB\nVmData:\t", mm->data_vm);
+       SEQ_PUT_DEC(" kB\nVmStk:\t", mm->stack_vm);
+       seq_put_decimal_ull_width(m,
+                   " kB\nVmExe:\t", text >> 10, 8);
+       seq_put_decimal_ull_width(m,
+                   " kB\nVmLib:\t", lib >> 10, 8);
+       seq_put_decimal_ull_width(m,
+                   " kB\nVmPTE:\t", mm_pgtables_bytes(mm) >> 10, 8);
+       SEQ_PUT_DEC(" kB\nVmSwap:\t", swap);
+       seq_puts(m, " kB\n");
        hugetlb_report_usage(m, mm);
 }
+#undef SEQ_PUT_DEC
 
 unsigned long task_vsize(struct mm_struct *mm)
 {
@@ -287,15 +278,18 @@ static void show_vma_header_prefix(struct seq_file *m,
                                   dev_t dev, unsigned long ino)
 {
        seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
-       seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
-                  start,
-                  end,
-                  flags & VM_READ ? 'r' : '-',
-                  flags & VM_WRITE ? 'w' : '-',
-                  flags & VM_EXEC ? 'x' : '-',
-                  flags & VM_MAYSHARE ? 's' : 'p',
-                  pgoff,
-                  MAJOR(dev), MINOR(dev), ino);
+       seq_put_hex_ll(m, NULL, start, 8);
+       seq_put_hex_ll(m, "-", end, 8);
+       seq_putc(m, ' ');
+       seq_putc(m, flags & VM_READ ? 'r' : '-');
+       seq_putc(m, flags & VM_WRITE ? 'w' : '-');
+       seq_putc(m, flags & VM_EXEC ? 'x' : '-');
+       seq_putc(m, flags & VM_MAYSHARE ? 's' : 'p');
+       seq_put_hex_ll(m, " ", pgoff, 8);
+       seq_put_hex_ll(m, " ", MAJOR(dev), 2);
+       seq_put_hex_ll(m, ":", MINOR(dev), 2);
+       seq_put_decimal_ull(m, " ", ino);
+       seq_putc(m, ' ');
 }
 
 static void
@@ -694,8 +688,9 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
                if (!mnemonics[i][0])
                        continue;
                if (vma->vm_flags & (1UL << i)) {
-                       seq_printf(m, "%c%c ",
-                                  mnemonics[i][0], mnemonics[i][1]);
+                       seq_putc(m, mnemonics[i][0]);
+                       seq_putc(m, mnemonics[i][1]);
+                       seq_putc(m, ' ');
                }
        }
        seq_putc(m, '\n');
@@ -736,6 +731,8 @@ void __weak arch_show_smap(struct seq_file *m, struct vm_area_struct *vma)
 {
 }
 
+#define SEQ_PUT_DEC(str, val) \
+               seq_put_decimal_ull_width(m, str, (val) >> 10, 8)
 static int show_smap(struct seq_file *m, void *v, int is_pid)
 {
        struct proc_maps_private *priv = m->private;
@@ -809,51 +806,34 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
                ret = SEQ_SKIP;
        }
 
-       if (!rollup_mode)
-               seq_printf(m,
-                          "Size:           %8lu kB\n"
-                          "KernelPageSize: %8lu kB\n"
-                          "MMUPageSize:    %8lu kB\n",
-                          (vma->vm_end - vma->vm_start) >> 10,
-                          vma_kernel_pagesize(vma) >> 10,
-                          vma_mmu_pagesize(vma) >> 10);
-
-
-       if (!rollup_mode || last_vma)
-               seq_printf(m,
-                          "Rss:            %8lu kB\n"
-                          "Pss:            %8lu kB\n"
-                          "Shared_Clean:   %8lu kB\n"
-                          "Shared_Dirty:   %8lu kB\n"
-                          "Private_Clean:  %8lu kB\n"
-                          "Private_Dirty:  %8lu kB\n"
-                          "Referenced:     %8lu kB\n"
-                          "Anonymous:      %8lu kB\n"
-                          "LazyFree:       %8lu kB\n"
-                          "AnonHugePages:  %8lu kB\n"
-                          "ShmemPmdMapped: %8lu kB\n"
-                          "Shared_Hugetlb: %8lu kB\n"
-                          "Private_Hugetlb: %7lu kB\n"
-                          "Swap:           %8lu kB\n"
-                          "SwapPss:        %8lu kB\n"
-                          "Locked:         %8lu kB\n",
-                          mss->resident >> 10,
-                          (unsigned long)(mss->pss >> (10 + PSS_SHIFT)),
-                          mss->shared_clean  >> 10,
-                          mss->shared_dirty  >> 10,
-                          mss->private_clean >> 10,
-                          mss->private_dirty >> 10,
-                          mss->referenced >> 10,
-                          mss->anonymous >> 10,
-                          mss->lazyfree >> 10,
-                          mss->anonymous_thp >> 10,
-                          mss->shmem_thp >> 10,
-                          mss->shared_hugetlb >> 10,
-                          mss->private_hugetlb >> 10,
-                          mss->swap >> 10,
-                          (unsigned long)(mss->swap_pss >> (10 + PSS_SHIFT)),
-                          (unsigned long)(mss->pss >> (10 + PSS_SHIFT)));
+       if (!rollup_mode) {
+               SEQ_PUT_DEC("Size:           ", vma->vm_end - vma->vm_start);
+               SEQ_PUT_DEC(" kB\nKernelPageSize: ", vma_kernel_pagesize(vma));
+               SEQ_PUT_DEC(" kB\nMMUPageSize:    ", vma_mmu_pagesize(vma));
+               seq_puts(m, " kB\n");
+       }
 
+       if (!rollup_mode || last_vma) {
+               SEQ_PUT_DEC("Rss:            ", mss->resident);
+               SEQ_PUT_DEC(" kB\nPss:            ", mss->pss >> PSS_SHIFT);
+               SEQ_PUT_DEC(" kB\nShared_Clean:   ", mss->shared_clean);
+               SEQ_PUT_DEC(" kB\nShared_Dirty:   ", mss->shared_dirty);
+               SEQ_PUT_DEC(" kB\nPrivate_Clean:  ", mss->private_clean);
+               SEQ_PUT_DEC(" kB\nPrivate_Dirty:  ", mss->private_dirty);
+               SEQ_PUT_DEC(" kB\nReferenced:     ", mss->referenced);
+               SEQ_PUT_DEC(" kB\nAnonymous:      ", mss->anonymous);
+               SEQ_PUT_DEC(" kB\nLazyFree:       ", mss->lazyfree);
+               SEQ_PUT_DEC(" kB\nAnonHugePages:  ", mss->anonymous_thp);
+               SEQ_PUT_DEC(" kB\nShmemPmdMapped: ", mss->shmem_thp);
+               SEQ_PUT_DEC(" kB\nShared_Hugetlb: ", mss->shared_hugetlb);
+               seq_put_decimal_ull_width(m, " kB\nPrivate_Hugetlb: ",
+                                         mss->private_hugetlb >> 10, 7);
+               SEQ_PUT_DEC(" kB\nSwap:           ", mss->swap);
+               SEQ_PUT_DEC(" kB\nSwapPss:        ",
+                                               mss->swap_pss >> PSS_SHIFT);
+               SEQ_PUT_DEC(" kB\nLocked:         ", mss->pss >> PSS_SHIFT);
+               seq_puts(m, " kB\n");
+       }
        if (!rollup_mode) {
                arch_show_smap(m, vma);
                show_smap_vma_flags(m, vma);
@@ -861,6 +841,7 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
        m_cache_vma(m, vma);
        return ret;
 }
+#undef SEQ_PUT_DEC
 
 static int show_pid_smap(struct seq_file *m, void *v)
 {