Re: boottime "VFS: file-max limit 4096/8192 reached": module problem!

Keith Owens (kaos@ocs.com.au)
Thu, 23 Dec 1999 13:40:37 +1100


On Wed, 22 Dec 1999 23:54:30 +0100,
Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
>I noticed this problem some time ago -- my Alpha Oopsed sometimes at boot-up,
>"so I recompiled with "Magic SysRQ enabled and found hundreds of modprobes.
>I haven't had time to track down who needs domain sockets, but because there
>are so many modprobe's running, it's maybe a problem with modprobe itself.

Chicken and egg problem. modprobe uses syslog which needs Unix sockets
which triggers kmod to load net-pf-1 which calls modprobe ... This
patch from Maciej W. Rozycki against modutils 2.3.[78] is a temporary
workaround. I'm looking for a more general fix to detect kmod
recursion, but it looks like it can only be fixed with kernel changes.

diff -u --recursive --new-file modutils-2.3.7.macro/insmod/modprobe.c modutils-2.3.7/insmod/modprobe.c
--- modutils-2.3.7.macro/insmod/modprobe.c Sun Oct 17 08:47:36 1999
+++ modutils-2.3.7/insmod/modprobe.c Fri Dec 10 03:39:21 1999
@@ -1466,7 +1466,16 @@
break;

case 's':
- setsyslog("modprobe");
+ /*
+ * If we are asked for net-pf-1 (aka unix) then syslogd
+ * is definitely not running, but calling syslog()
+ * would make Linux call request_module("net-pf-1")
+ * again, resulting in something like a forkbomb. So
+ * we do not enable logging.
+ * Not a very clean solution but it works.
+ */
+ if (strcmp(argv[argc - 1], "net-pf-1"))
+ setsyslog("modprobe");
break;

case 'C':

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/