From: David Brownell <david-b@pacbell.net>
To: linux-hotplug@vger.kernel.org
Subject: Re: Unloading drivers, start-up, shut-down and a rewrite (a problem)
Date: Fri, 05 Oct 2001 08:53:05 +0000 [thread overview]
Message-ID: <marc-linux-hotplug-100227296605211@msgid-missing> (raw)
In-Reply-To: <marc-linux-hotplug-100216891319132@msgid-missing>
Hi Keith,
> I am not convinced that we need a separate count, at least not at the
> bottom layer. The module use count is a pure reference count on the
> module code, rmmod does not care what the types of reference are, rmmod
> just cares if it is safe to unload the code.
While "rmmod" may not care, there are two distinct user communities
that IMO need to be supported:
- "real users", 95+% of the computer users in the world, who want
things to "just work" and never need root access or a sysadmin;
- "sysadmin" or "developer" ... who does troubleshooting/upgrading/...
and so needs extra system capabilities.
I think "one use count" might work for a "real user", but not for anyone
who wants safe ways to replace drivers on running systems. If there's
just one use count, adjusted in userland, it'd be too easy for userland
bugs to corrupt things. (What do you mean by "need"? :)
> >Likely "rmmod" needs a flag that says whether the device count is
> >ignored, as (effectively) done today. Driver developers will want the
> >flexibility to say "remove this driver even though there's hardware
> >attached, I've got a bugfix". USB developers work in that mode
> >today, it's quite handy.
>
> See above, I don't see any need to distinguish between references.
How would someone SSH into a system and upgrade some of its
drivers? With two counts, one can shutdown all code using the
drivers (use count goes to zero), then say "ignore any hardware,
just remove the driver". And then start things up again; perfectly
safe, even a sleep-deprived and seriously aggravated sysadmin
can't make mistakes (run some command too many times :) and
thereby crash the server (consequences left to your imagination).
> If the device is up then the module cannot be unloaded. That does assume
> that all devices can be deactivated which is not currently true, to do
> this properly every device driver would need an up and a down routine.
If "up" is a software notion, that's what I see the current use count as
being used for. (I can't see it being a hardware notion...) But I'm not
sure what you're saying "is not currently true".
Hotpluggable drivers get told when the hardware comes and goes,
by USB or PCI etc. With USB, that doesn't modify any use counter,
ensuring that drivers can safely be reloaded so long as they're not
actually in use. If the hardware is accessed through the file system
device nodes, open/release routines apply; network drivers have up/down
analogues. Those all (should) update the current use count, keeping
the driver from being unloaded until the device becomes inactive.
> I can add a use count up/down interface to kernel/module.c without
> waiting for every driver to be converted to an up/down interface.
The same with MOD_{INC,DEC}_DEV_COUNT() support;
it's not drivers that'd need converting, but subsystems. Two lines
(each) in the right places of usb.c, pci.c (or wherever).
Changing every single driver would be wrong, I'd agree.
> However we have to agree on a common design for drivers, I would hate
> to see some modules supporting up/down and others doing it a different
> way.
We have USB pretty well in hand, as I described above. It could again
serve as a guinea pig ... :)
- Dave
_______________________________________________
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:[~2001-10-05 8:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-10-04 3:14 Unloading drivers, start-up, shut-down and a rewrite (a problem) Stamatis Mitrofanis
2001-10-04 4:29 ` Keith Owens
2001-10-05 0:03 ` Stamatis Mitrofanis
2001-10-05 5:58 ` Keith Owens
2001-10-05 6:25 ` David Hinds
2001-10-05 7:13 ` David Brownell
2001-10-05 7:21 ` David Brownell
2001-10-05 7:28 ` Keith Owens
2001-10-05 8:16 ` Oliver Neukum
2001-10-05 8:53 ` David Brownell [this message]
2001-10-05 15:26 ` 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-100227296605211@msgid-missing \
--to=david-b@pacbell.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).