From: Rusty Russell <rusty@rustcorp.com.au>
To: "Adam J. Richter" <adam@yggdrasil.com>
Cc: linux-kernel@vger.kernel.org, davem@redhat.com
Subject: Re: Another idea for simplifying locking in kernel/module.c
Date: Fri, 10 Jan 2003 21:11:41 +1100 [thread overview]
Message-ID: <20030110102144.404492C0A6@lists.samba.org> (raw)
In-Reply-To: Your message of "Fri, 10 Jan 2003 01:10:13 -0800." <200301100910.BAA31409@adam.yggdrasil.com>
In message <200301100910.BAA31409@adam.yggdrasil.com> you write:
> Rusty Russell wrote:
> >In message <200301070219.SAA12905@adam.yggdrasil.com> you write:
> >> Here is a way to replace all of the specialized "stop CPU"
> >> locking code in kernel/module.c with an rw_semaphore by using
> >> down_read_trylock in try_module_get() and down_write when beginning to
> >> unload the module.
>
> >And now you can't modularize netfilter modules.
>
> Why not? Last time you went looking in the networking code
> for an example of something that had to increment a module reference
> in a context where blocking was not allowed you ended up conceding
> that you example was incorrect.
No, you're thinking of the IPv4 stack. I didn't use netfilter as an
example, because that opens me to "well, FIX NETFILTER then!". If it
were the only case, it's probably arguable.
The problems with netfilter modules are exactly why I started looking
at module locking over two years ago.
> I just booted my gateway machine to a kernel using my
> aforemetioned patch and various netfilter modules. I've surfed the
> web, FTP'ed file and run irc through it. It seems to be okay.
Sure! That's because the netfilter modules use a horrific hack, by
keeping their own "usage" counts and then spinning (potentially
forever) on unload until it hits zero.
Logically the skb->nfct would have an owner field in it.
Now, performance. You want a brlock, at least: the performance of
either the security infrastructure or netfilter modules is going to
suck horribly with anything else. And the bogolock used in module.c
is even lighter weight than a brlock, with its associated atomic ops.
Hope that clarifies...
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
next prev parent reply other threads:[~2003-01-10 10:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-10 9:10 Another idea for simplifying locking in kernel/module.c Adam J. Richter
2003-01-10 9:38 ` Andre Hedrick
2003-01-10 10:15 ` Rusty Russell
2003-01-11 14:46 ` Bill Davidsen
2003-01-10 10:11 ` Rusty Russell [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-01-10 12:18 Adam J. Richter
2003-01-10 11:16 Adam J. Richter
2003-01-11 3:53 ` Rusty Russell
2003-01-10 9:38 Adam J. Richter
2003-01-07 8:53 Adam J. Richter
2003-01-09 20:41 ` Max Krasnyansky
2003-01-07 2:19 Adam J. Richter
2003-01-08 11:46 ` Rusty Russell
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=20030110102144.404492C0A6@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=adam@yggdrasil.com \
--cc=davem@redhat.com \
--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 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.