From 2f6cbd19113167746dc4fb6b4f3f5fd64a1c211f Mon Sep 17 00:00:00 2001 From: "kay.sievers@vrfy.org" Date: Fri, 6 Feb 2004 22:21:15 -0800 Subject: [PATCH] convert udevsend/udevd to DGRAM and single-threaded On Fri, Feb 06, 2004 at 01:08:24AM -0500, Chris Friesen wrote: > > Kay, you said "unless we can get rid of _all_ the threads or at least > getting faster, I don't want to change it." > > Well how about we get rid of all the threads, *and* we get faster? Yes, we are twice as fast now on my box :) > This patch applies to current bk trees, and does the following: > > 1) Switch to DGRAM sockets rather than STREAM. This simplifies things > as mentioned in the previous message. > > 2) Invalid sequence numbers are mapped to -1 rather than zero, since > zero is a valid sequence number (I think). Also, this allows for real > speed tests using scripts starting at a zero sequence number, since that > is what the initial expected sequence number is. > > 3) Get rid of all threading. This is the biggie. Some highlights: > a) timeout using setitimer() and SIGALRM > b) async child death notification via SIGCHLD > c) these two signal handlers do nothing but raise volatile flags, > all the > work is done in the main loop > d) locking no longer required I cleaned up the rest of the comments, the whitespace and a few names to match the whole thing. Please recheck it. Test script is switched to work on subsystem 'test' to let udev ignore it. --- test/udevd_test.sh | 65 +++++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) (limited to 'test') diff --git a/test/udevd_test.sh b/test/udevd_test.sh index 506e886948..981a39d01d 100644 --- a/test/udevd_test.sh +++ b/test/udevd_test.sh @@ -3,81 +3,86 @@ # add/rem/add/rem/add sequence of sda/sdb/sdc # a few days longer and the socket of my usb-flash-reader is gone :) +export SEQNUM=0 +export ACTION=add +export DEVPATH=/test/init +./udevsend test + export SEQNUM=3 export ACTION=add -export DEVPATH=/block/sdc -./udevsend block +export DEVPATH=/test/sdc +./udevsend test export SEQNUM=1 export ACTION=add -export DEVPATH=/block/sda -./udevsend block +export DEVPATH=/test/sda +./udevsend test export SEQNUM=2 export ACTION=add -export DEVPATH=/block/sdb -./udevsend block +export DEVPATH=/test/sdb +./udevsend test export SEQNUM=4 export ACTION=remove -export DEVPATH=/block/sdc -./udevsend block +export DEVPATH=/test/sdc +./udevsend test export SEQNUM=5 export ACTION=remove -export DEVPATH=/block/sdb -./udevsend block +export DEVPATH=/test/sdb +./udevsend test export SEQNUM=8 export ACTION=add -export DEVPATH=/block/sdb -./udevsend block +export DEVPATH=/test/sdb +./udevsend test export SEQNUM=6 export ACTION=remove -export DEVPATH=/block/sda -./udevsend block +export DEVPATH=/test/sda +./udevsend test export SEQNUM=7 export ACTION=add -export DEVPATH=/block/sda -#./udevsend block +export DEVPATH=/test/sda +#./udevsend test sleep 2 export SEQNUM=9 export ACTION=add -export DEVPATH=/block/sdc -./udevsend block +export DEVPATH=/test/sdc +./udevsend test export SEQNUM=11 export ACTION=remove -export DEVPATH=/block/sdb -./udevsend block +export DEVPATH=/test/sdb +./udevsend test export SEQNUM=10 export ACTION=remove -export DEVPATH=/block/sdc -./udevsend block +export DEVPATH=/test/sdc +./udevsend test export SEQNUM=13 export ACTION=add -export DEVPATH=/block/sda -./udevsend block +export DEVPATH=/test/sda +./udevsend test export SEQNUM=14 export ACTION=add -export DEVPATH=/block/sdb -./udevsend block +export DEVPATH=/test/sdb +./udevsend test export SEQNUM=15 export ACTION=add -export DEVPATH=/block/sdc -./udevsend block +export DEVPATH=/test/sdc +./udevsend test sleep 2 export SEQNUM=12 export ACTION=remove -export DEVPATH=/block/sda -./udevsend block +export DEVPATH=/test/sda +./udevsend test -- cgit v1.2.3-54-g00ecf