summaryrefslogtreecommitdiff
path: root/udev/udevd.c
AgeCommit message (Collapse)Author
2009-02-23Put a log message in a more sensible place.Scott James Remnant
2009-02-23Use the udevdb to speed up watch clearing.Scott James Remnant
Also return a udev_device when looking up by handle as well, so everything works the same way.
2009-02-23Cleanup a little.Scott James Remnant
Move some of the checks into udev_watch_begin() and udev_watch_clear() so we don't have to repeat them all the time.
2009-02-23Clear existing inotify watch before processing.Scott James Remnant
Likewise when re-processing an event, we want to drop the existing inotify watch first to avoid side-effects.
2009-02-23Don't add inotify watch until RUN rules processed.Scott James Remnant
The programs we RUN can open device nodes, and thus we can end up chasing our own tail.
2009-02-11use global "reload_config" flagKay Sievers
2009-02-11udevd: optionally watch device nodes with inotifyScott James Remnant
This allows you to re-process the rules if the content of the device has been changed, most useful for block subsystem to cause vol_id to be run again.
2009-01-21udevd: add back SA_RESTARTKay Sievers
<Keybuk> poll, select, ppoll, pselect, epoll, etc. are *explicitly* NOT restarted in case of signal <kay> ok
2009-01-21split up long lineKay Sievers
2009-01-21Merge commit '9032f119f07ad3b5116b3d4858816d851d4127de'Kay Sievers
2009-01-21Merge commit '5f03ed8a56d308af72db8a48ab66ed68667af2c6'Kay Sievers
Conflicts: udev/udevd.c
2009-01-21reap children fasterOlaf Kirch
udevd's event_queue_manager loop is pretty sensitive to the delays of exiting child processes. I found that it helps boot times if we try to reap children as quickly as possible. This patch changes event_queue_manager to call sigchilds_waiting if it finds a signal has been received. Signed-off-by: Olaf Kirch <okir@suse.de>
2009-01-21open-code pollfd setupKay Sievers
2009-01-20Expose delayed name resolutionScott James Remnant
udevd had the ability to delay name resolution until the event, but this was never exposed. Add a --resolve-names=late option to do so.
2009-01-20Allow user and group lookup to be disabled.Scott James Remnant
In certain cut-down situations such as an installer or inside the initramfs, we simply don't have any kind of name service. While we could use rules without OWNER or GROUP, it's better to have the same rules as a full system and have udevd ignore those parts of the rules. Adds a --resolve-names=never switch to udevd that has this effect.
2009-01-20udevd: use ppoll instead of signal pipesOlaf Kirch
udevd uses a rather old-fashioned way of handling signals while waiting for input through select (ie by using an unnamed pipe, to which the signal handler writes one byte for every signal received). This is rather awkward and may potentially even block if we receive more signals than the kernel's pipe buffer. This patch replaces all of that with ppoll, which was designed for this purpose. It also removes the SA_RESTART flag from all installed signal handlers, because otherwise the ppoll call would just be restarted after handling eg a SIGCHLD. Signed-off-by: Olaf Kirch <okir@suse.de>
2008-12-29require non-SYSFS_DEPRECATED 2.6.20+ kernelKay Sievers
2008-11-17udevd: fix cleanup of /dev/.udev/uevent_seqnumKay Sievers
2008-11-13set errno = ENOSYS in inotify stubKay Sievers
2008-11-06cleanup /dev/.udev/queue on startup and exitKay Sievers
2008-11-01skip entire rule containing device naming keys, if no device can be namedKay Sievers
If rules set NAME, SYMLINK, OWNER, GROUP, MODE, events without a device node and remove events will skip the entire rule. The old parser did the same.
2008-10-31write trace log to stderrKay Sievers
2008-10-29udevd: merge exec and run queue to minimize devpath string comparesKay Sievers
2008-10-25udevd: use a tighter loop for compare_devpath()Alan Jenkins
This crops up in my threaded udevd profiles from time to time. It's not consistent - probably due to variations in the number of concurrent events - but it can hit 4% user time and higher. The change halves the user time spent in compare_devpath(). Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-18prefix udev-util.c functions with util_*Kay Sievers
2008-10-18selinux_init(udev) -> udev_selinux_init(udev)Kay Sievers
2008-10-18udev_rules_run() -> udev_event_execute_run();Kay Sievers
2008-10-18udev_event_run() -> udev_event_execute_rules()Kay Sievers
2008-10-18udevd: avoid overhead of calling rmdir on non-empty directoriesAlan Jenkins
Unfortunately the linux rmdir implementation unhashes the dentry even when the directory is not removed. This is apparently by design (for filesystems that don't allow deleting open files). Results from time(1) and oprofile follow. Before: 0.35user 0.90system samples % image name symbol name 608 9.6738 vmlinux shrink_dcache_parent 293 4.6619 vmlinux copy_page_c 271 4.3119 vmlinux copy_page_range 257 4.0891 udevd udev_rules_iter_next After: 0.31user 0.67system samples % image name symbol name 361 5.0419 vmlinux copy_page_range 322 4.4972 udevd udev_rules_iter_next 300 4.1899 vmlinux copy_page_c Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-18make struct udev_rules opaqueKay Sievers
2008-10-18merge udev-rules.c and udev-rules-parse.cKay Sievers
2008-10-17udevd: use udev_list_nodeKay Sievers
2008-10-17libudev: monitor - add set_receive_buffer_size()Kay Sievers
2008-10-16rename udev source filesKay Sievers
2008-10-16udevd: use libudevKay Sievers
2008-10-04udevd: clarify deprecated sysfs layout warningKay Sievers
2008-10-02libudev: get rid of selinuxKay Sievers
"Hello world!" linked against libselinux parses /proc/mounts and whatever else on startup, even when the lib is not needed at all. Not funny! Get rid of that thing where it's not absolutely needed.
2008-10-02use no_argument, required_argument, optional_argument in longoptsKay Sievers
2008-10-01udevd: print warning if CONFIG_SYSFS_DEPRECATED is usedKay Sievers
Future udev versions will depend on the current sysfs layout, which includes features which are not available in the deprecated mode.
2008-09-29replace strerror() usage with threadsafe "%m" format stringAlan Jenkins
strerror() is not threadsafe. It uses a buffer to build messages of the form "Unknown error 387689". syslog() provides a %m format which is equivalent to strerror(errno). As a GNU extension, this is also accepted by printf and friends. At least in the current implementation, it is correctly threadsafe. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-09-19always include config.h from MakefileKay Sievers
2008-09-10use size definitions from libudevKay Sievers
2008-09-10get rid of udev_sysdeps.cKay Sievers
2008-09-10convert to libudev and delete udev_utils_string.cKay Sievers
2008-09-10update file headersKay Sievers
2008-09-10libudev: add selinuxKay Sievers
2008-09-09udevd: remove max_childs_running logicKay Sievers
This was needed in the old days, where all the hotplug scripts did nothing better than sleep for seconds to work around timing issues. It made sure, that w continued to fork processes, while the machine was doing nothing than sleeping, but the maximim number of childs was already reached. This is no longer needed today, we do not run many of these scripts anymore.
2008-09-08move udev_ctrl to libudev-privateKay Sievers
2008-09-06use libudev code, unify logging, pass udev context around everywhereKay Sievers
2008-09-03udevadm: control - use getopt_long()Kay Sievers