From: Olaf Hering <olh@suse.de>
To: linux-hotplug@vger.kernel.org
Subject: [PATCH] queue usb hotplug events
Date: Sat, 07 Jun 2003 11:43:14 +0000 [thread overview]
Message-ID: <marc-linux-hotplug-105498661302046@msgid-missing> (raw)
Hi,
there is a hardcoded sleep 3 in the usb.agent. But this is wrong,
because the kernel runs all hotplug events at once for a new hub. The
result is that every event still runs in parallel, just 3 seconds later.
This patch implements an userland fifo.
touch an unique file
wait one second to let things settle
build a list with lockfiles, oldest last
grab the pid of the oldest agent
if this pid match the running agent, proceed
if all lockfiles are gone, proceed as well, provides a way to workaround
a hanging event
otherwise wait a second and try again
Index: etc/hotplug/usb.agent
=================================--- etc/hotplug/usb.agent (revision 13)
+++ etc/hotplug/usb.agent (working copy)
@@ -367,7 +367,15 @@
# with slow HID devices and "usbmodules".
# starting with 2.5, all hcds must queue control traffic.
if [ "$DEVPATH" = "" ]; then
- sleep 3
+ touch "${REMOVER}.queue.$$"
+ until [ `sleep 1` ] ; do
+ lockfiles=`ls -t /var/run/usb/*.queue.* 2>/dev/null`
+ pid=${lockfiles##*.}
+ debug_mesg $pid $lockfiles
+ test "$pid" = "$$" && { debug_mesg pid $$ proceeds ; break; }
+ test "$lockfiles" = "" && { debug_mesg all lockfiles gone ; break; }
+ debug_mesg wait 1 second for pid $pid
+ done
fi
usb_convert_vars
@@ -426,6 +434,10 @@
/sbin/devlabel restart
fi
+ if [ -e "${REMOVER}.queue.$$" ]; then
+ debug_mesg pid $$ done
+ rm -f "${REMOVER}.queue.$$"
+ fi
;;
remove)
--
USB is for mice, FireWire is for men!
-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
_______________________________________________
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 reply other threads:[~2003-06-07 11:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-07 11:43 Olaf Hering [this message]
2003-06-07 19:22 ` [PATCH] queue usb hotplug events David Brownell
2003-06-07 19:25 ` Olaf Hering
2003-06-07 19:34 ` David Brownell
2003-06-07 19:34 ` Olaf Hering
2003-06-08 7:23 ` Olaf Hering
2003-06-08 19:10 ` David Brownell
2003-06-09 11:34 ` Olaf Hering
2003-06-09 15:25 ` 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=marc-linux-hotplug-105498661302046@msgid-missing \
--to=olh@suse.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.