chiark / gitweb /
[PATCH] udevd: throttle the forking of processes
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Sun, 16 Jan 2005 23:53:08 +0000 (00:53 +0100)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 06:21:58 +0000 (23:21 -0700)
commit085cce379a4256cd039ccda3c8198aba058c8720
treee326d53828119d60b172a8a531c2ec0de46aac25
parent1e26698933e89c11dc6806d8bd37fd4386814239
[PATCH] udevd: throttle the forking of processes

If the system reaches a defined limit of processes in running state, udevd
starts to count its own processes in running state from its session (all
forked hotplug child processes, subprocesses and callouts) and throttles
further process forking if the limit is reached.

This should help setups with hundreds of events emitted hotplug events
in parallel with hundreds of processes in "R" state. which makes the machine
unresponsible.

I placed a 100% cpu time consuming program in /etc/hotplug.d/ which runs for 5
seconds. With this patch I can load "scsi_debug add_host=100" without any major
problem. Without the patch the box is completly unresponsible for many minutes.
udevd.c
udevd.h