linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miles Lane <miles@megapathdsl.net>
To: linux-hotplug@vger.kernel.org
Subject: Re: Adding PCMCIA support to the kernel tree -- developers needed.
Date: Wed, 07 Feb 2001 17:37:37 +0000	[thread overview]
Message-ID: <marc-linux-hotplug-98156755428948@msgid-missing> (raw)
In-Reply-To: <marc-linux-hotplug-98118528107653@msgid-missing>

See comments at end of message.

Oliver Neukum wrote:
> 
> On Mittwoch,  7. Februar 2001 06:17, you wrote:
> > Hi,
> >
> > > > When I thought about this last year, my conclusion was that it SHOULD
> > > > be OK to have multiple event orderings so long as all were correctly
> > > > serialized with respect to essential criteria.  Just as if they were
> > >
> > > Essentially I believe you right. But which criteria ?
> >
> > "add" finishes before "remove" starts; the names of
> > devices are stable while those agents execute.
> > Minimal.
> 
> These are not enough. You must ensure that "remove" has finished before you
> start anything that reuses the device node.
> 
> Eg.: Printer 1 added -> printcap edited
>       Printer 1 removed -> printcap edited
>       Printer 2 added -> printcap edited
> 
> You see, changing the order of events 2 and 3 is wrong.
> You'd have the wrong interfaces in printcap.
> 
> > > > database transactions that didn't interfere with each other.  The
> > > > configuration of a GNU/Linux operating environment is a transactable
> > > > problem, and users have no business caring which hotplug action is
> > > > handled first ... so long as each one is handled correctly.
> > >
> > > That means that transactions that might interfer are serialised.
> > > However is see no way you could tell which transactions might interfer.
> > > Thus you have to serialise them all.
> >
> > The way you resolve this is saying that transactions in different
> > subsystems may not interfere (else they're bugs) and that individual
> > subsystems get to define their own rules ... but the default expectation
> > should be that two devices hotplugging must NOT interfere with each other.
> 
> At some level the function of devices enters the game.
> The hotplugging events must be generated on the physical busses
> to allow module autoloading, yet they come into contact by the device nodes.
> 
> Both a disk on FC-AL in the next building and a PCMCIA SCSI controller share
> the same device node space.
> 
> The amount of locking needed to be provided by shell scripts worries me.
> 
> > That means fixing some subsystem behaviors (using stable names for
> > network interfaces, as one example).  Architecturally, there is no sense
> > to letting two subsystems interfere with each other.
> 
> Then you'd need to have a stable name provided to the hotplug script.
> This is difficult, for several reasons.
> a) You need devfs (which is not PC)
> b) You know that name only after the driver is loaded. (You don't even know
> the number of names, multifunction devices and bridges)
> c) You'd need to call after drivers have bound to interfaces.
> d) There might be devices which have difficulties providing a stable name.
> 
> These are conflicting requirements. In fact you'd need _two_ scripts. One to
> load the driver, a second to configure the device the driver has bound to.

Hi,

I am leaving this message intact, because I think it's a good snapshot
of
several important issues.

So, the process looks something like this:

	Device detection
	Module loads
	Device nodes enabled
	Usermode scripts (or daemon) run to 
	do things like launch programs to
	upload data to a device via one of 
	its device nodes.

Now, we need to figure out a robust way to recover from devices
being unplugged and new devices being inserted that reuse
device nodes.  Obviously, any usermode configuration scripts that
fired off for the previous device will still be running and we'd 
then have two instances of that configuration script running
and trying to access devices on the same device nodes.  Not good.

So, it seems that we need a way of telling all usermode scripts
(or daemons) to back out any work done that depends on a given
device node when we discover that the associated device has been
unplugged.  We then need a method of having any new usermode scripts
that will be accessing the same device nodes to wait until the previous
script (or daemon) has completed the back out process.

Then there's the question of what to do when a user application has 
already been launched which will be expecting access to the first
device.  For example, I plug in a videocam and then unplug it, but
my video viewing program has already been launched.  Perhaps this 
isn't a huge problem.  If I then connect a different videocam, it
would reuse the video0 device node.  Hmm.

Yes, this seems like a really messy situation.

	Miles

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  parent reply	other threads:[~2001-02-07 17:37 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-03  7:28 Adding PCMCIA support to the kernel tree -- developers needed Miles Lane
2001-02-03 10:07 ` Jeff Garzik
2001-02-03 19:27 ` David Woodhouse
2001-02-03 23:59 ` Miles Lane
2001-02-04  0:00 ` David Hinds
2001-02-04  0:05 ` David Woodhouse
2001-02-04  1:19 ` David Brownell
2001-02-04  1:58 ` Miles Lane
2001-02-04  3:26 ` Keith Owens
2001-02-04  5:59 ` Miles Lane
2001-02-04  8:56 ` David Hinds
2001-02-04  9:55 ` David Woodhouse
2001-02-04 10:00 ` David Woodhouse
2001-02-04 10:10 ` Oliver Neukum
2001-02-04 10:53 ` David Woodhouse
2001-02-04 11:37 ` David Woodhouse
2001-02-04 17:34 ` David Hinds
2001-02-04 18:02 ` Miles Lane
2001-02-04 18:16 ` Oliver Neukum
2001-02-04 18:54 ` Miles Lane
2001-02-05  1:14 ` Jeff Garzik
2001-02-05  1:56 ` David Brownell
2001-02-05  2:43 ` Miles Lane
2001-02-05  8:42 ` Miles Lane
2001-02-05 10:01 ` Keith Owens
2001-02-05 10:13 ` Keith Owens
2001-02-05 23:43 ` David Woodhouse
2001-02-05 23:45 ` David Woodhouse
2001-02-05 23:59 ` Oliver Neukum
2001-02-06  0:27 ` Miles Lane
2001-02-06  1:10 ` David Brownell
2001-02-06  1:40 ` David Brownell
2001-02-06  6:55 ` Miles Lane
2001-02-06  7:11 ` David Woodhouse
2001-02-06  7:58 ` David Hinds
2001-02-06  8:02 ` David Hinds
2001-02-06  8:13 ` David Hinds
2001-02-06  9:51 ` Oliver Neukum
2001-02-06 13:46 ` Andrew Morton
2001-02-06 15:15 ` Jeff Garzik
2001-02-06 15:20 ` David Woodhouse
2001-02-06 15:33 ` Oliver Neukum
2001-02-06 15:35 ` David Woodhouse
2001-02-06 15:54 ` Oliver Neukum
2001-02-06 16:43 ` Jeff Garzik
2001-02-06 18:56 ` David Brownell
2001-02-06 19:22 ` David Brownell
2001-02-06 19:31 ` David Brownell
2001-02-06 22:09 ` Adam J. Richter
2001-02-06 22:10 ` Andrew Morton
2001-02-06 22:50 ` Oliver Neukum
2001-02-06 23:07 ` Andrew Morton
2001-02-06 23:12 ` Andrew Morton
2001-02-06 23:14 ` Andrew Morton
2001-02-06 23:20 ` David Woodhouse
2001-02-06 23:30 ` Oliver Neukum
2001-02-06 23:34 ` Oliver Neukum
2001-02-06 23:36 ` Andrew Morton
2001-02-07  1:33 ` David Brownell
2001-02-07  2:11 ` Miles Lane
2001-02-07  2:38 ` Adam J. Richter
2001-02-07  9:02 ` Oliver Neukum
2001-02-07  9:09 ` Vojtech Pavlik
2001-02-07  9:10 ` David Woodhouse
2001-02-07  9:35 ` Oliver Neukum
2001-02-07  9:37 ` Vojtech Pavlik
2001-02-07  9:57 ` Oliver Neukum
2001-02-07 10:11 ` Vojtech Pavlik
2001-02-07 10:27 ` David Woodhouse
2001-02-07 10:29 ` Oliver Neukum
2001-02-07 10:30 ` David Woodhouse
2001-02-07 14:45 ` Oliver Neukum
2001-02-07 15:19 ` Adam J. Richter
2001-02-07 16:11 ` Oliver Neukum
2001-02-07 17:37 ` Miles Lane [this message]
2001-02-07 17:48 ` Vojtech Pavlik
2001-02-07 18:24 ` David Brownell
2001-02-07 18:42 ` David Brownell
2001-02-07 18:47 ` David Brownell
2001-02-07 18:47 ` Oliver Neukum
2001-02-07 19:00 ` David Brownell
2001-02-07 19:29 ` Vojtech Pavlik
2001-02-07 19:59 ` Miles Lane
2001-02-07 21:02 ` Oliver Neukum
2001-02-07 21:14 ` David Brownell
2001-02-07 22:43 ` Oliver Neukum
2001-02-08  7:22 ` Miles Lane
2001-02-08  9:29 ` Adam J. Richter
2001-02-08 10:24 ` Oliver Neukum
2001-02-08 12:47 ` Andrew Morton
2001-02-08 13:22 ` Oliver Neukum
2001-02-08 13:49 ` Andrew Morton
2001-02-08 14:07 ` Oliver Neukum
2001-02-08 15:00 ` Vojtech Pavlik
2001-02-08 15:10 ` Vojtech Pavlik
2001-02-08 15:13 ` Vojtech Pavlik
2001-02-09  7:42 ` Vojtech Pavlik
2001-02-09 11:48 ` Oliver Neukum
2001-02-09 12:45 ` Vojtech Pavlik
2001-02-09 13:09 ` Oliver Neukum
2001-02-09 14:15 ` David Brownell
2001-02-09 15:45 ` Vojtech Pavlik
2001-02-26 17:47 ` David Brownell
2001-02-26 21:45 ` Chris Brand
2001-02-27  7:56 ` David Hinds
2001-02-28 16:56 ` David Brownell
2001-02-28 17:32 ` David Hinds

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-98156755428948@msgid-missing \
    --to=miles@megapathdsl.net \
    --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).