> I just put const's at some places. It cut down data segments, but
> increased code size.
> Overall still smaller:
>
> -rwxr-xr-x 1 user users 50420 Nov 19 10:53 ../udev-046/udev
> -rwxr-xr-x 1 user users 49556 Nov 19 10:53 udev
> text data bss dec hex filename
> 47245 968 22480 70693 11425 ../udev-046/udev
> 48089 104 22064 70257 11271 udev
>
> Also, the instance of utsname in udev_lib.c is used only once.
The slow logging facilites on some systems are a reason for
the reported slowness of udevstart. On one of my boxes udevstart
is down from 9 second to 0.3 seconds.
Some broken ide drivers are generating high event traffic, with
add/remove events. With this attribute, it can be specified,
that the node is always available. It may be used in conjunction
with the new DRIVER= match to catch specific kernel device drivers.
Remove the overwriting of main_argv[] hack and use the values
from the udev object.
Pass the udev object to call_foreach_file().
In the udevstart case, export SUBSYSTEM and UDEVSTART to the
environment.
The option "-s" will get information about the major/minor,
the physical device, the bus value and the driver from sysfs for
all class and block devices:
kay@pim udev.kay]$ ./udevinfo -s
DEVPATH '/sys/block/sda'
SUBSYSTEM 'block'
NAME 'sda'
MAJORMINOR '8:0'
PHYSDEVPATH '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/host2/target2:0:0/2:0:0:0'
PHYSDEVPATHBUS 'scsi'
DRIVER 'sd'
DEVPATH '/sys/class/input/mice'
SUBSYSTEM 'input'
NAME 'mice'
MAJORMINOR '13:63'
DEVPATH '/sys/class/input/mouse0'
SUBSYSTEM 'input'
NAME 'mouse0'
MAJORMINOR '13:32'
...
Make _all_ hotplug variables available to the forked udev,
the udev callouts and the udev dev.d/ scripts. We put the
whole environment into a buffer and send it over the udevd
socket. udevd recreates *envp[] and passes it to the exec().
This makes the udev operation completely lockless by storing a
file for every node in /dev/.udevdb/* This solved the problem
with deadlocking concurrent udev processes waiting for each other
to release the file lock under heavy load.
Hi,
Here is a few updates for the udev.rules.gentoo from udev package.
I will summarise it briefly:
1) The last change you did to legacy tty's is wrong.
I say this because:
1a) The original devfs rules had both master and slave in /dev/pty:
nosferatu linux # grep devfs_name drivers/char/pty.c
pty_driver->devfs_name = "pty/m";
pty_slave_driver->devfs_name = "pty/s";
nosferatu linux #
1b) If you refer to '2.6.8.1-mm1 Tty problems?', you will see that
the /dev/tty/ directory our rules create, replaces this symlink:
nosferatu portage # ls -l /dev/tty
crw-rw-rw- 1 root tty 5, 0 Nov 14 17:06 /dev/tty
nosferatu portage #
which is used to determine the controlling tty.
2) Somebody added the /dev/cpu/microcode rule, but it was not run
as there was an older rule before that placing it in /dev/misc (which
is wrong). Just remove the first broken rule
3) Some form/tab cleanups. Reorder rules alphabetically according to
device class to make searching/editing easier.