busybox/util-linux
Denys Vlasenko 5bce135e36 mdev: improve $SEQ handling; improve debug logging
Sequential run of concurrent mdev's was too simplistic:
they waited for /dev/mdev.seq to match. This could sometimes
cause cumulative loss of time on the order of a second.

Added SIGCHLD signaling from exiting mdev to all other mdev's.
Added debugging required to see that code actually works as intended.

Example of /dev/mdev.log (with "woken up" elevated from dbg lvl 3 to 2):

mdev[1023]: first seq written
     ^^^^ seq, not pid
mdev[1023]: 35.022395 ACTION:add SUBSYSTEM:module DEVNAME:(null) DEVPATH:/module/lib80211
mdev[1023]: rule matched, line -1
                          ^^^^^^^ means "default rule"
mdev[1023]: 35.022676 exiting
            ^^^^^^^^^ second,usec timestamp
mdev[1024]: 35.069691 ACTION:add SUBSYSTEM:vc DEVNAME:vcs9 DEVPATH:/devices/virtual/vc/vcs9
mdev[1024]: dev 7,9
mdev[1025]: 35.069889 waiting for '1024'
mdev[1026]: 35.069946 waiting for '1024'
mdev[1027]: 35.070151 waiting for '1024'
mdev[1024]: rule matched, line -1
mdev[1024]: mknod vcs9 (7,9) 20660 0:0
mdev[1024]: 35.070346 exiting
mdev[1025]: woken up
mdev[1026]: woken up
mdev[1025]: 35.071213 ACTION:add SUBSYSTEM:vc DEVNAME:vcsa9 DEVPATH:/devices/virtual/vc/vcsa9
            ^^^^^^^^^ took only a millisecond to start running after prev mdev exited
mdev[1025]: dev 7,137
mdev[1027]: woken up
mdev[1025]: rule matched, line -1
mdev[1025]: mknod vcsa9 (7,137) 20660 0:0
mdev[1025]: 35.072109 exiting

function                                             old     new   delta
mdev_main                                            849    1372    +523
curtime                                                -      59     +59
dirAction                                             87     134     +47
static.ts                                              -       8      +8
keywords                                              19      12      -7
make_device                                         2189    2119     -70

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 10:51:41 +01:00
..
volume_id
acpid.c
blkid.c
blockdev.c
Config.src
dmesg.c
fbset.c
fdformat.c
fdisk_aix.c
fdisk_gpt.c
fdisk_osf.c
fdisk_sgi.c
fdisk_sun.c
fdisk.c
findfs.c
flock.c
freeramdisk.c
fsck_minix.c
getopt.c
hexdump.c
hwclock.c
ipcrm.c
ipcs.c
Kbuild.src
losetup.c
lspci.c
lsusb.c
mdev.c
minix.h
mkfs_ext2_test.sh
mkfs_ext2.c
mkfs_ext2.txt
mkfs_minix.c
mkfs_reiser.c
mkfs_vfat.c
mkswap.c
more.c
mount.c
pivot_root.c
rdate.c
rdev.c
readprofile.c
rev.c
rtcwake.c
script.c
scriptreplay.c
setarch.c
swaponoff.c
switch_root.c
umount.c