From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Thu, 22 Jan 2004 01:08:30 +0000 Subject: Re: about split the udev Message-Id: <20040122010830.GA32256@vrfy.org> List-Id: References: <3ACA40606221794F80A5670F0AF15F8402D4EE96@PDSMSX403.ccr.corp.intel.com> In-Reply-To: <3ACA40606221794F80A5670F0AF15F8402D4EE96@PDSMSX403.ccr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Thu, Jan 22, 2004 at 01:27:45AM +0100, Kay Sievers wrote: > On Wed, Jan 21, 2004 at 02:38:25PM +0100, Kay Sievers wrote: > > On Thu, Jan 15, 2004 at 01:45:10PM -0800, Greg KH wrote: > > > On Thu, Jan 15, 2004 at 10:36:25PM +0800, Ling, Xiaofeng wrote: > > > > Hi, Greg > > > > I wrote a simple implementation for the two pieces > > > > of send and receive hotplug event, > > > > use a message queue and a list for the out of order > > > > hotplug event. It also has a timeout timer of 3 seconds. > > > > They are now separate program. the file nseq is the test script. > > > > Could you have a look to see wether it is feasible? > > > > If so, I'll continue to merge with udev. > > > > > > Yes, very nice start. Please continue on. > > > > > > One minor comment, please stick with the kernel coding style when you > > > are writing new code for udev. > > > > I took the code from Xiaofeng, cleaned the whitespace, renamed some bits, > > tweaked the debugging, added the udev exec and created a patch for the current tree. > > > > It seems functional now, by simply executing our current udev (dirty hack). > > It reorders the incoming events and if one is missing it delays the > > execution of the following ones up to a maximum of 10 seconds. > > > > Test script is included, but you can't mix hotplug sequence numbers and > > test script numbers, it will result in waiting for the missing numbers :) > > Hey, nobody want's to play with me? > So here I'm chatting with myself :) > > This is the next version with signal handling for resetting the expected > signal number. I changed the behaviour of the timeout to skip all > missing events at once and to proceed with the next event in the queue. > > So it's now possible to use the test script at any time, cause it resets > the daemon, if real hotplug event coming in later all missing nimbers will > be skipped after a timeout of 10 seconds and the queued events are applied. Here for the lazy one :) Log from the test script which demonstrates the event reordering. Event 5 is arriving before event 4, so 4 is queued until 5 is coming in, then both are executed. Events 8 and 9 are completely missing, so we wait for 10 seconds then go ahead and exec the remaining events in the queue. thanks, Kay Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 0 #in 1 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 1, expected sequence 0 #out 1 Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 1, 'add', '/block/sda', 'block' Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 2 #in 2 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 2, expected sequence 2 #out 2 Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 2, 'add', '/block/sda', 'block' Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 3 #in 3 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 3, expected sequence 3 #out 3 Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 3, 'add', '/block/sda', 'block' Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 4 #in 5 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 5, expected sequence 4 Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 4 #queue 5 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 5 #in 4 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 4, expected sequence 4 #out 4 Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 4, 'add', '/block/sda', 'block' Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 5 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 5 out queued 5 #out 5 (delayed) Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 5, 'add', '/block/sda', 'block' #in 6 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 6, expected sequence 6 #out 6 Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 6, 'add', '/block/sda', 'block' Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 7 #in 7 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 7, expected sequence 7 #out 7 Jan 22 01:16:42 pim udev[17562]: dump_msg: sequence 7, 'add', '/block/sda', 'block' Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 8 #in 10 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 10, expected sequence 8 Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 8 queue 10 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 10 #in 11 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 11, expected sequence 8 Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 8 queue 11 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 10 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 11 #in 12 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 12, expected sequence 8 Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 8 queue 12 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 10 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 11 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 12 #in 13 Jan 22 01:16:42 pim udev[17562]: process_queue: current sequence 13, expected sequence 8 Jan 22 01:16:42 pim udev[17562]: dump_queue: next expected sequence 8 queue 13 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 10 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 11 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 12 Jan 22 01:16:42 pim udev[17562]: dump_queue: queued sequence 13 #10 seconds timeout, skip missing events 8 and 9, proceed with queue Jan 22 01:16:52 pim udev[17562]: sig_alarmhandler: caught signal 14 Jan 22 01:16:52 pim udev[17562]: sig_alarmhandler: timeout, event lost Jan 22 01:16:52 pim udev[17562]: process_queue: timeout reached, skip events 8 - 9 Jan 22 01:16:52 pim udev[17562]: dump_queue: next expected sequence 10 Jan 22 01:16:52 pim udev[17562]: dump_queue: queued sequence 10 Jan 22 01:16:52 pim udev[17562]: dump_queue: queued sequence 11 Jan 22 01:16:52 pim udev[17562]: dump_queue: queued sequence 12 Jan 22 01:16:52 pim udev[17562]: dump_queue: queued sequence 13 #out 10 (delayed) Jan 22 01:16:52 pim udev[17562]: dump_msg: sequence 10, 'add', '/block/sda', 'block' #out 11 (delayed) Jan 22 01:16:52 pim udev[17562]: dump_msg: sequence 11, 'add', '/block/sda', 'block' #out 12 (delayed) Jan 22 01:16:52 pim udev[17562]: dump_msg: sequence 12, 'add', '/block/sda', 'block' #out 13 (delayed) Jan 22 01:16:52 pim udev[17562]: dump_msg: sequence 13, 'add', '/block/sda', 'block' ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ 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