Commit 1e88328111aae3ea408f346763ba9f9bad71f876

Authored by Matt Mackall
Committed by Linus Torvalds
1 parent 304daa8132

maps4: make page monitoring /proc file optional

Make /proc/ page monitoring configurable

This puts the following files under an embedded config option:

/proc/pid/clear_refs
/proc/pid/smaps
/proc/pid/pagemap
/proc/kpagecount
/proc/kpageflags

[akpm@linux-foundation.org: Kconfig fix]
Signed-off-by: Matt Mackall <mpm@selenic.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 5 changed files with 20 additions and 3 deletions Side-by-side Diff

... ... @@ -2249,7 +2249,7 @@
2249 2249 LNK("exe", exe),
2250 2250 REG("mounts", S_IRUGO, mounts),
2251 2251 REG("mountstats", S_IRUSR, mountstats),
2252   -#ifdef CONFIG_MMU
  2252 +#ifdef CONFIG_PROC_PAGE_MONITOR
2253 2253 REG("clear_refs", S_IWUSR, clear_refs),
2254 2254 REG("smaps", S_IRUGO, smaps),
2255 2255 REG("pagemap", S_IRUSR, pagemap),
... ... @@ -2578,7 +2578,7 @@
2578 2578 LNK("root", root),
2579 2579 LNK("exe", exe),
2580 2580 REG("mounts", S_IRUGO, mounts),
2581   -#ifdef CONFIG_MMU
  2581 +#ifdef CONFIG_PROC_PAGE_MONITOR
2582 2582 REG("clear_refs", S_IWUSR, clear_refs),
2583 2583 REG("smaps", S_IRUGO, smaps),
2584 2584 REG("pagemap", S_IRUSR, pagemap),
... ... @@ -676,6 +676,7 @@
676 676 };
677 677 #endif
678 678  
  679 +#ifdef CONFIG_PROC_PAGE_MONITOR
679 680 #define KPMSIZE sizeof(u64)
680 681 #define KPMMASK (KPMSIZE - 1)
681 682 /* /proc/kpagecount - an array exposing page counts
... ... @@ -804,6 +805,7 @@
804 805 .llseek = mem_lseek,
805 806 .read = kpageflags_read,
806 807 };
  808 +#endif /* CONFIG_PROC_PAGE_MONITOR */
807 809  
808 810 struct proc_dir_entry *proc_root_kcore;
809 811  
810 812  
... ... @@ -885,8 +887,10 @@
885 887 (size_t)high_memory - PAGE_OFFSET + PAGE_SIZE;
886 888 }
887 889 #endif
  890 +#ifdef CONFIG_PROC_PAGE_MONITOR
888 891 create_seq_entry("kpagecount", S_IRUSR, &proc_kpagecount_operations);
889 892 create_seq_entry("kpageflags", S_IRUSR, &proc_kpageflags_operations);
  893 +#endif
890 894 #ifdef CONFIG_PROC_VMCORE
891 895 proc_vmcore = create_proc_entry("vmcore", S_IRUSR, NULL);
892 896 if (proc_vmcore)
... ... @@ -337,6 +337,7 @@
337 337 */
338 338 #define PSS_SHIFT 12
339 339  
  340 +#ifdef CONFIG_PROC_PAGE_MONITOR
340 341 struct mem_size_stats
341 342 {
342 343 struct vm_area_struct *vma;
... ... @@ -717,6 +718,7 @@
717 718 .llseek = mem_lseek, /* borrow this */
718 719 .read = pagemap_read,
719 720 };
  721 +#endif /* CONFIG_PROC_PAGE_MONITOR */
720 722  
721 723 #ifdef CONFIG_NUMA
722 724 extern int show_numa_map(struct seq_file *m, void *v);
... ... @@ -678,6 +678,16 @@
678 678  
679 679 source "arch/Kconfig"
680 680  
  681 +config PROC_PAGE_MONITOR
  682 + default y
  683 + depends on PROC_FS && MMU
  684 + bool "Enable /proc page monitoring" if EMBEDDED
  685 + help
  686 + Various /proc files exist to monitor process memory utilization:
  687 + /proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap,
  688 + /proc/kpagecount, and /proc/kpageflags. Disabling these
  689 + interfaces will reduce the size of the kernel by approximately 4kb.
  690 +
681 691 endmenu # General setup
682 692  
683 693 config SLABINFO
... ... @@ -5,7 +5,7 @@
5 5 mmu-y := nommu.o
6 6 mmu-$(CONFIG_MMU) := fremap.o highmem.o madvise.o memory.o mincore.o \
7 7 mlock.o mmap.o mprotect.o mremap.o msync.o rmap.o \
8   - vmalloc.o pagewalk.o
  8 + vmalloc.o
9 9  
10 10 obj-y := bootmem.o filemap.o mempool.o oom_kill.o fadvise.o \
11 11 page_alloc.o page-writeback.o pdflush.o \
... ... @@ -13,6 +13,7 @@
13 13 prio_tree.o util.o mmzone.o vmstat.o backing-dev.o \
14 14 page_isolation.o $(mmu-y)
15 15  
  16 +obj-$(CONFIG_PROC_PAGE_MONITOR) += pagewalk.o
16 17 obj-$(CONFIG_BOUNCE) += bounce.o
17 18 obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o thrash.o
18 19 obj-$(CONFIG_HUGETLBFS) += hugetlb.o