From: Russ Lewis <spamhole-2001-07-16@deming-os.org>
To: linux-kernel@vger.kernel.org
Subject: Re: RE2: [OKS] Module removal
Date: Tue, 09 Jul 2002 12:23:31 -0700 [thread overview]
Message-ID: <3D2B3833.99029EDE@deming-os.org> (raw)
In-Reply-To: 31775.1025581336@kao2.melbourne.sgi.com
Keith Owens wrote:
> All functions passed to registration routines by modules are uncounted
> references. A module is loaded, registers its operations and exits
> from the cleanup routine. At that point its use count is 0, even
> though it there are references to the module from tables outside the
> module.
Perhaps we should have 2 counters: a use count and a reference count. You can
start the unload process at any time that the use count is 0, but you can't
unload the module's memory until the reference count is 0. This is the
2-stage unload, formalized with counters for each stage.
You could register references from outside the module. AFAIK, you can take
any pointer or function pointer and do a lookup to find out what module it
belongs to. Thus, when you pass pointers (in a registration) to another
module, then it calls some function (register_reference, say) on each pointer
and function pointer. When it can guarantee that it is about to discard a
pointer (and so it will never use it again), then it calls
unregister_reference.
You may not have to register each pointer in an ops structure...it might be
enough to just call register_reference on the ops structure itself, since that
would hold the module in place. Doesn't work if the ops structure is
dynamically allocated memory, but then register_reference would be able to
return a failure return code "NOT_MODULE_MEMORY" or some such.
--
The Villagers are Online! villagersonline.com
.[ (the fox.(quick,brown)) jumped.over(the dog.lazy) ]
.[ (a version.of(English).(precise.more)) is(possible) ]
?[ you want.to(help(develop(it))) ]
next prev parent reply other threads:[~2002-07-09 19:21 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-01 20:21 RE2: [OKS] Module removal Michael Nguyen
2002-07-02 1:40 ` Werner Almesberger
2002-07-02 2:25 ` Keith Owens
2002-07-02 3:11 ` Werner Almesberger
2002-07-02 3:42 ` Keith Owens
2002-07-02 4:11 ` Werner Almesberger
2002-07-02 22:23 ` Alexander Viro
2002-07-09 19:23 ` Russ Lewis [this message]
2002-07-02 4:08 ` Brian Gerst
2002-07-02 4:53 ` Keith Owens
2002-07-02 5:43 ` Werner Almesberger
2002-07-02 16:36 ` Werner Almesberger
2002-07-02 16:50 ` Benjamin Herrenschmidt
2002-07-02 18:05 ` Werner Almesberger
2002-07-03 3:50 ` Pavel Machek
2002-07-04 4:11 ` Bill Davidsen
2002-07-04 6:29 ` Werner Almesberger
2002-07-04 6:50 ` Werner Almesberger
2002-07-07 21:09 ` Jamie Lokier
2002-07-07 21:41 ` Oliver Neukum
2002-07-08 0:31 ` Jamie Lokier
2002-07-08 6:42 ` Oliver Neukum
2002-07-08 0:18 ` Bill Davidsen
2002-07-08 0:46 ` Jamie Lokier
2002-07-08 6:22 ` Daniel Phillips
2002-07-08 10:16 ` Bill Davidsen
2002-07-09 0:07 ` Werner Almesberger
2002-07-09 0:27 ` Keith Owens
2002-07-09 3:09 ` Werner Almesberger
2002-07-09 6:25 ` Roman Zippel
2002-07-09 8:59 ` Kai Germaschewski
2002-07-09 11:06 ` Roman Zippel
2002-07-04 12:29 ` Bill Davidsen
2002-07-09 1:50 ` Kevin O'Connor
2002-07-09 2:37 ` Werner Almesberger
2002-07-02 23:35 ` Alexander Viro
2002-07-02 22:41 ` RE2: " Alexander Viro
2002-07-02 8:52 ` Helge Hafting
2002-07-02 16:22 ` Werner Almesberger
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=3D2B3833.99029EDE@deming-os.org \
--to=spamhole-2001-07-16@deming-os.org \
--cc=linux-kernel@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