chiark / gitweb /
[PATCH] convert udevsend/udevd to DGRAM and single-threaded
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Sat, 7 Feb 2004 06:21:15 +0000 (22:21 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:32:26 +0000 (21:32 -0700)
commit2f6cbd19113167746dc4fb6b4f3f5fd64a1c211f
tree3ee052f575f8a3094a97a0dc39fe2ffaf9e93459
parentd2cf99df7df132d8d90c4f7b438374618793c15a
[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.
Makefile
test/udevd_test.sh
udevd.c
udevsend.c