Alan Jenkins 836dcf951c udevd: avoid overhead of calling rmdir on non-empty directories
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-18 15:28:49 +02:00
2008-10-17 19:29:02 +02:00
2008-09-29 05:03:43 +02:00
2008-09-06 15:22:19 +02:00
2008-10-07 14:32:33 +02:00
2008-10-13 03:34:37 +02:00
2006-08-28 00:29:11 +02:00
2008-08-28 22:58:03 +02:00
2008-10-02 18:48:40 +02:00
2008-10-07 14:32:33 +02:00
2008-10-07 14:32:33 +02:00
2008-09-03 21:56:47 +02:00

udev - userspace device management

For more information see the files in the docs/ directory.

Important Note:
  Integrating udev in the system has complex dependencies and differs from distro
  to distro. All major distros depend on udev these days and the system may not
  work without a properly installed version. The upstream udev project does not
  recommend to replace a distro's udev installation with the upstream version.

Requirements:
  - Version 2.6.19 of the Linux kernel for reliable operation of this release of
    udev. The kernel may have a requirement on udev too, see Documentation/Changes
    in the kernel source tree for the actual dependency.

  - The kernel must have sysfs, unix domain sockets and networking enabled.
    (unix domain sockets (CONFIG_UNIX) as a loadable kernel module may work,
    but it does not make any sense - don't complain if anything goes wrong.)

  - The proc filesystem must be mounted on /proc/, the sysfs filesystem must
    be mounted at /sys/. No other locations are supported by udev.


Operation:
  Udev creates and removes device nodes in /dev/, based on events the kernel
  sends out on device discovery or removal.

  - Very early in the boot process, the /dev/ directory should get a 'tmpfs'
    filesystem mounted, which is populated from scratch by udev. Created nodes
    or changed permissions will not survive a reboot, which is intentional.

  - The content of /lib/udev/devices/ directory which contains the nodes,
    symlinks and directories, which are always expected to be in /dev, should
    be copied over to the tmpfs mounted /dev, to provide the required nodes
    to initialize udev and continue booting.

  - The old hotplug helper /sbin/hotplug should be disabled on bootup, before
    actions like loading kernel modules are taken, which may cause a lot of
    events.

  - The udevd daemon must be started on bootup to receive netlink uevents
    from the kernel driver core.

  - All kernel events are matched against a set of specified rules in
    /lib/udev/rules.d/ which make it possible to hook into the event
    processing to load required kernel modules and setup devices. For all
    devices the kernel exports a major/minor number, udev will create a
    device node with the default kernel name, or the one specified by a
    matching udev rule.

Please direct any comment/question/concern to the linux-hotplug mailing list at:
  linux-hotplug@vger.kernel.org

S
Description
No description provided
Readme
46 MiB
Languages
C 92.6%
Shell 2.1%
Makefile 1.6%
M4 1.2%
Perl 1.2%
Other 1.3%