chiark / gitweb /
udev: lower the starting children_max -> drop the minimum required RAM from 23mb...
authorLauri Kasanen <curaga@operamail.com>
Sun, 3 Jun 2012 15:11:58 +0000 (18:11 +0300)
committerKay Sievers <kay@vrfy.org>
Mon, 4 Jun 2012 14:02:33 +0000 (16:02 +0200)
Udev was the limiting factor for us on low-RAM systems.
Given an average RSS of 180kb, 128 workers would require ~23mb of RAM.

Now, please consider what happens when there is only, say, 15mb free.
Udev protects itself from OOM, and the kernel can do nothing but panic.

28 workers * 0.18mb = ~5mb. This change should not affect more powerful
systems much, given that they still get the addition from the amount of RAM.

src/udev/udevd.c

index 7905310..229031c 100644 (file)
@@ -1353,9 +1353,9 @@ int main(int argc, char *argv[])
 
                 /* set value depending on the amount of RAM */
                 if (memsize > 0)
 
                 /* set value depending on the amount of RAM */
                 if (memsize > 0)
-                        children_max = 128 + (memsize / 8);
+                        children_max = 28 + (memsize / 8);
                 else
                 else
-                        children_max = 128;
+                        children_max = 28;
         }
         log_debug("set children_max to %u\n", children_max);
 
         }
         log_debug("set children_max to %u\n", children_max);