Skip to content

Commit abaed01

Browse files
Michal Hockotorvalds
authored andcommitted
mm, vmstat: hide /proc/pagetypeinfo from normal users
/proc/pagetypeinfo is a debugging tool to examine internal page allocator state wrt to fragmentation. It is not very useful for any other use so normal users really do not need to read this file. Waiman Long has noticed that reading this file can have negative side effects because zone->lock is necessary for gathering data and that a) interferes with the page allocator and its users and b) can lead to hard lockups on large machines which have very long free_list. Reduce both issues by simply not exporting the file to regular users. Link: http://lkml.kernel.org/r/[email protected] Fixes: 467c996 ("Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo") Signed-off-by: Michal Hocko <[email protected]> Reported-by: Waiman Long <[email protected]> Acked-by: Mel Gorman <[email protected]> Acked-by: Vlastimil Babka <[email protected]> Acked-by: Waiman Long <[email protected]> Acked-by: Rafael Aquini <[email protected]> Acked-by: David Rientjes <[email protected]> Reviewed-by: Andrew Morton <[email protected]> Cc: David Hildenbrand <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Roman Gushchin <[email protected]> Cc: Konstantin Khlebnikov <[email protected]> Cc: Jann Horn <[email protected]> Cc: Song Liu <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent df2ec76 commit abaed01

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

mm/vmstat.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1972,7 +1972,7 @@ void __init init_mm_internals(void)
19721972
#endif
19731973
#ifdef CONFIG_PROC_FS
19741974
proc_create_seq("buddyinfo", 0444, NULL, &fragmentation_op);
1975-
proc_create_seq("pagetypeinfo", 0444, NULL, &pagetypeinfo_op);
1975+
proc_create_seq("pagetypeinfo", 0400, NULL, &pagetypeinfo_op);
19761976
proc_create_seq("vmstat", 0444, NULL, &vmstat_op);
19771977
proc_create_seq("zoneinfo", 0444, NULL, &zoneinfo_op);
19781978
#endif

0 commit comments

Comments
 (0)