PROC_TGID_MOUNTSTATS,
PROC_TGID_WCHAN,
#ifdef CONFIG_MMU
+#ifdef CONFIG_PROC_CLEAR_REFS
PROC_TGID_CLEAR_REFS,
+#endif
#ifdef CONFIG_PROC_SMAPS
PROC_TGID_SMAPS,
#endif
PROC_TID_MOUNTSTATS,
PROC_TID_WCHAN,
#ifdef CONFIG_MMU
+#ifdef CONFIG_PROC_CLEAR_REFS
PROC_TID_CLEAR_REFS,
+#endif
#ifdef CONFIG_PROC_SMAPS
PROC_TID_SMAPS,
#endif
E(PROC_TGID_MOUNTS, "mounts", S_IFREG|S_IRUGO),
E(PROC_TGID_MOUNTSTATS, "mountstats", S_IFREG|S_IRUSR),
#ifdef CONFIG_MMU
+#ifdef CONFIG_PROC_CLEAR_REFS
E(PROC_TGID_CLEAR_REFS, "clear_refs", S_IFREG|S_IWUSR),
+#endif
#ifdef CONFIG_PROC_SMAPS
E(PROC_TGID_SMAPS, "smaps", S_IFREG|S_IRUSR),
#endif
E(PROC_TID_EXE, "exe", S_IFLNK|S_IRWXUGO),
E(PROC_TID_MOUNTS, "mounts", S_IFREG|S_IRUGO),
#ifdef CONFIG_MMU
+#ifdef CONFIG_PROC_CLEAR_REFS
E(PROC_TID_CLEAR_REFS, "clear_refs", S_IFREG|S_IWUSR),
+#endif
#ifdef CONFIG_PROC_SMAPS
E(PROC_TID_SMAPS, "smaps", S_IFREG|S_IRUSR),
#endif
inode->i_fop = &proc_mounts_operations;
break;
#ifdef CONFIG_MMU
+#ifdef CONFIG_PROC_CLEAR_REFS
case PROC_TID_CLEAR_REFS:
case PROC_TGID_CLEAR_REFS:
inode->i_fop = &proc_clear_refs_operations;
break;
+#endif
#ifdef CONFIG_PROC_SMAPS
case PROC_TID_SMAPS:
case PROC_TGID_SMAPS:
};
#endif
+#ifdef CONFIG_PROC_CLEAR_REFS
static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
unsigned long end, void *private)
{
struct file_operations proc_clear_refs_operations = {
.write = clear_refs_write,
};
+#endif
#ifdef CONFIG_NUMA
extern int show_numa_map(struct seq_file *m, void *v);
shared memory per mapping. Disabling this interface will reduce
the size of the kernel for small machines.
+config PROC_CLEAR_REFS
+ default y
+ bool "Enable /proc/pid/clear_refs support" if EMBEDDED && PROC_FS && MMU
+ help
+ The /proc/pid/clear_refs interface allows clearing the
+ referenced bits on a process's memory maps to allow monitoring
+ working set size. Disabling this interface will reduce
+ the size of the kernel for small machines.
+
endmenu # General setup
config RT_MUTEXES