Bug 60836

Summary: Non-existing inode-max documented
Product: Documentation Reporter: Marko Myllynen (myllynen)
Component: man-pagesAssignee: documentation_man-pages (documentation_man-pages)
Status: RESOLVED CODE_FIX    
Severity: normal CC: mtk.manpages
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:
Attachments: Drop references to prehistoric /proc/sys/fs/inode-max

Description Marko Myllynen 2013-09-03 09:36:19 UTC
Created attachment 107391 [details]
Drop references to prehistoric /proc/sys/fs/inode-max

Both Linux man pages and kernel's Documentation/sysctl/fs.txt document /proc/sys/fs/inode-max which was gone in early 2.3 (~14 years ago).

My patch proposal for man pages attached, however I'm uncertain how preshrink works these days so please double check before applying.
Comment 1 Michael Kerrisk 2013-09-04 08:05:06 UTC
(In reply to Marko Myllynen from comment #0)
> Created attachment 107391 [details]
> Drop references to prehistoric /proc/sys/fs/inode-max

Man-pages tends to keep historical information, so rather than dropping the text, it's best to describe when it ceased to be true.

> Both Linux man pages and kernel's Documentation/sysctl/fs.txt document
> /proc/sys/fs/inode-max which was gone in early 2.3 (~14 years ago).

Sad, but true: the documentation is way out of date.

> My patch proposal for man pages attached, however I'm uncertain how
> preshrink works these days so please double check before applying.

"preshrink" also went away in Linux 2.4, it seems: it is nowadays a dummy value (always zero).

I've applied thge patch below. Thanks for the report.

Cheers,

Michael

diff --git a/man5/proc.5 b/man5/proc.5
index 1c42717..e40dd4d 100644
--- a/man5/proc.5
+++ b/man5/proc.5
@@ -2497,15 +2497,6 @@ The kernel constant
 imposes an upper limit on the value that may be placed in
 .IR file-max .
 
-If you increase
-.IR /proc/sys/fs/file-max ","
-be sure to increase
-.I /proc/sys/fs/inode-max
-to 3-4 times the new
-value of
-.IR /proc/sys/fs/file-max ","
-or you will run out of inodes.
-
 Privileged processes
 .RB ( CAP_SYS_ADMIN )
 can override the
@@ -2531,15 +2522,18 @@ a past peak in the usage of open file handles.
 Since Linux 2.6, the kernel does deallocate freed file handles,
 and the "free file handles" value is always zero.
 .TP
-.I /proc/sys/fs/inode-max
+.IR /proc/sys/fs/inode-max " (only present until Linux 2.2)"
 This file contains the maximum number of in-memory inodes.
-On some (2.4) systems, it may not be present.
 This value should be 3-4 times larger
 than the value in
 .IR file-max ,
 since \fIstdin\fP, \fIstdout\fP
 and network sockets also need an inode to handle them.
 When you regularly run out of inodes, you need to increase this value.
+
+Starting with Linux 2.4,
+there is no longer a static limit on the number of inodes,
+and this file is removed.
 .TP
 .I /proc/sys/fs/inode-nr
 This file contains the first two values from
@@ -2551,20 +2545,23 @@ contains seven numbers:
 .IR nr_inodes ,
 .IR nr_free_inodes ,
 .IR preshrink ,
-and four dummy values.
+and four dummy values (always zero).
+
 .I nr_inodes
 is the number of inodes the system has allocated.
-This can be slightly more than
-.I inode-max
-because Linux allocates them one page full at a time.
+.\" This can be slightly more than
+.\" .I inode-max
+.\" because Linux allocates them one page full at a time.
 .I nr_free_inodes
 represents the number of free inodes.
+
 .I preshrink
 is nonzero when the
 .I nr_inodes
 >
 .I inode-max
-and the system needs to prune the inode list instead of allocating more.
+and the system needs to prune the inode list instead of allocating more;
+since Linux 2.4, this field is a dummy value (always zero).
 .TP
 .IR /proc/sys/fs/inotify " (since Linux 2.6.13)"
 This directory contains files