[PATCH] Increase limit of max_user_watches from 1/25 to 1/16

From: Eric Curtin
Date: Wed Jan 20 2021 - 09:16:36 EST


The current default value for max_user_watches is the 1/16 (6.25%) of
the available low memory, divided for the "watch" cost in bytes.

Tools like inotify-tools and visual studio code, seem to hit these
limits a little to easy.

Also amending the documentation, it referred to an old value for this.

Signed-off-by: Eric Curtin <ericcurtin17@xxxxxxxxx>
---
Documentation/admin-guide/sysctl/fs.rst | 4 ++--
fs/eventpoll.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/admin-guide/sysctl/fs.rst b/Documentation/admin-guide/sysctl/fs.rst
index f48277a0a850..f7fe45e69c41 100644
--- a/Documentation/admin-guide/sysctl/fs.rst
+++ b/Documentation/admin-guide/sysctl/fs.rst
@@ -380,5 +380,5 @@ This configuration option sets the maximum number of "watches" that are
allowed for each user.
Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
on a 64bit one.
-The current default value for max_user_watches is the 1/32 of the available
-low memory, divided for the "watch" cost in bytes.
+The current default value for max_user_watches is the 1/16 (6.25%) of the
+available low memory, divided for the "watch" cost in bytes.
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index a829af074eb5..de9ef8f6d0b2 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -2352,9 +2352,9 @@ static int __init eventpoll_init(void)

si_meminfo(&si);
/*
- * Allows top 4% of lomem to be allocated for epoll watches (per user).
+ * Allows top 6.25% of lomem to be allocated for epoll watches (per user).
*/
- max_user_watches = (((si.totalram - si.totalhigh) / 25) << PAGE_SHIFT) /
+ max_user_watches = (((si.totalram - si.totalhigh) / 16) << PAGE_SHIFT) /
EP_ITEM_COST;
BUG_ON(max_user_watches < 0);

--
2.25.1