From: Arnd Bergmann <arnd@arndb.de>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
Rusty Russell <rusty@rustcorp.com.au>,
Kay Sievers <kay.sievers@vrfy.org>,
Brandon Philips <brandon@ifup.org>
Subject: Re: [BUG 2.6.36-rc6] list corruption in module_bug_finalize
Date: Mon, 4 Oct 2010 13:00:14 +0200 [thread overview]
Message-ID: <201010041300.15234.arnd@arndb.de> (raw)
In-Reply-To: <alpine.LFD.2.00.1010032141410.14550@localhost6.localdomain6>
On Sunday 03 October 2010, Thomas Gleixner wrote:
> Current mainline triggers a list corruption bug in
> module_bug_finalize(). dmesg excerpt below.
>
> The corresponding code says:
>
> /*
> * Strictly speaking this should have a spinlock to protect against
> * traversals, but since we only traverse on BUG()s, a spinlock
> * could potentially lead to deadlock and thus be counter-productive.
> */
> list_add(&mod->bug_list, &module_bug_list);
>
> I can see the traversal problem vs. BUG(), but what's protecting the
> list_add() ? BKL probably did, but is that true anymore ?
BKL hasn't been in this code path since before git.
I think this relatively recent change caused module_finalize to be
called without module_mutex held:
commit 75676500f8298f0ee89db12db97294883c4b768e
Author: Rusty Russell <rusty@rustcorp.com.au>
Date: Sat Jun 5 11:17:36 2010 -0600
module: make locking more fine-grained.
Kay Sievers <kay.sievers@vrfy.org> reports that we still have some
contention over module loading which is slowing boot.
Linus also disliked a previous "drop lock and regrab" patch to fix the
bne2 "gave up waiting for init of module libcrc32c" message.
This is more ambitious: we only grab the lock where we need it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Brandon Philips <brandon@ifup.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Arnd
next prev parent reply other threads:[~2010-10-04 11:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-03 19:51 [BUG 2.6.36-rc6] list corruption in module_bug_finalize Thomas Gleixner
2010-10-04 11:00 ` Arnd Bergmann [this message]
2010-10-04 22:43 ` Thomas Gleixner
2010-10-04 23:55 ` Linus Torvalds
2010-10-05 1:11 ` Linus Torvalds
2010-10-05 5:14 ` Rusty Russell
2010-10-05 7:30 ` Thomas Gleixner
2010-10-05 15:34 ` Linus Torvalds
2010-10-05 16:40 ` Thomas Gleixner
2010-10-05 17:17 ` Linus Torvalds
2010-10-05 17:43 ` Thomas Gleixner
2010-10-06 9:10 ` Rusty Russell
2010-10-05 4:18 ` Rusty Russell
2010-10-05 11:08 ` Adrian Bunk
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=201010041300.15234.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=brandon@ifup.org \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=tglx@linutronix.de \
/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.