From: Patrick Mansfield <patmans@us.ibm.com>
To: linux-hotplug@vger.kernel.org
Subject: Re: hotplugd - event serializer and multiplexer
Date: Mon, 08 Mar 2004 17:06:42 +0000 [thread overview]
Message-ID: <20040308090642.A31764@beaverton.ibm.com> (raw)
In-Reply-To: <20040307213757.GA24298@vrfy.org>
On Sun, Mar 07, 2004 at 10:37:57PM +0100, Kay Sievers wrote:
> Hi,
> I've took our sweet udevd and made a generic hotplug event serializer.
> It can replace the current /sbin/hotplug multiplexer bash script.
>
> hotplugsend is invoked by the kernel and sends the data the kernel
> provides over a domain socket to the hotplugd daemon. The daemon will
> be started if not already running.
>
> The hotplugd daemon reorders the events it receives, handles timeouts if
> sequences are missing and executes all programs in /etc/hotplug.d/<subsys>/
> thereafter in /etc/hotplug.d/default/ in each case in lexical order.
Sounds interesting. I was thinking of trying out the C version of the
/sbin/hotplug.
I was trying some tests with many devices (about 100 to 1000) using
scsi_debug, it was fairly slow, but I have not compared with/without
hotplug. I was going to check on the speeds with/without many udev.rules.
(I'm running on an older box, NUMAQ with 8 500 Mhz procesoor with 8gb of
memory).
I could see many scsi.agent processes running, and scsi.agent is not
optimal - all it does is try to load sd_mod 1000 times, but sd is built
into my kernel; and on remove, we invoke scsi.agent do set up some minor
things, and then do nothing.
> The programs are executed in the background, but only _one_ program runs
> at any time for a single DEVPATH. No longer need for the various 'sleep 2'
> all over the scripts. It's possible now to order the programs, so that
> udev has already created all nodes, before the scripts are called.
> udevd is no longer neccessary, we can call udev directly.
How does serializing these avoid kernel races in creating attributes after
the hotplug has been sent?
> The maximum count of forked processes may be limited and is currently set
> to 300.
That sounds high ;-)
> It doesn't depend on any shell and therefore should be very fast for
> a lot of devices connected at once. Hmm, I have only 4 :)
Use scsi_debug. Build it as a module and load it via:
/sbin/modprobe scsi_debug num_tgts=X max_luns=Y delay=T
Where X * Y is the number of disks that will get created. The delay T
defaults to 1 milliseconds, changing this to 0 does not help as much as
you would think (probably because we have to wake up ksoftirqd to handle
the phony IO completions, rather than run them off of a timeout).
The sysfs entries can use up quite a bit of memory.
If you want to go above 256, you need a sd many patch, and a glibc with
major/minor fixes (I have not figured out how to update my debian glibc
for the new major/minor usage), but if you build udev with klibc it will
get the newer makedev code).
i.e. my glibc gives this:
elm3b79:~# mknod /tmp/sdcon-2 b 8 768
elm3b79:~# ls -l /tmp/sdcon-2
brw-r--r-- 1 root root 11, 0 Mar 5 14:26 /tmp/sdcon-2
I used Kurt's sd many patch (I don't know what the latest status is on
this patch going into the kernel, see Kurt's last post on the subject, it
might be in mm):
http://marc.theaimsgroup.com/?l=linux-scsi&m\x107663093228380&w=2
> I know that most of us don't like a daemon for general hotplug, but I
> wanted to try it. I expect more and more problems with the
> syncronization of the hotplug scripts, so this is a possible solution.
> No later event will ever beat the earlier for one device.
>
> I've put this together today in 5 hours, so expect a very experimental
> piece of code :)
>
> Anybody interested, may look at it here:
>
> http://vrfy.org/projects/hotplugd/
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id\x1470&alloc_id638&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next prev parent reply other threads:[~2004-03-08 17:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-07 21:37 hotplugd - event serializer and multiplexer Kay Sievers
2004-03-08 17:06 ` Patrick Mansfield [this message]
2004-03-08 17:25 ` Kay Sievers
2004-03-08 20:51 ` Olaf Hering
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040308090642.A31764@beaverton.ibm.com \
--to=patmans@us.ibm.com \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).