All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.