From: Jens Axboe <jens.axboe@oracle.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>,
paulmck@linux.vnet.ibm.com, Ingo Molnar <mingo@elte.hu>,
Pekka J Enberg <penberg@cs.helsinki.fi>,
Vegard Nossum <vegard.nossum@gmail.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: fabio@gandalf.sssup.it
Subject: Re: kmemcheck caught read from freed memory (cfq_free_io_context)
Date: Wed, 2 Apr 2008 14:36:39 +0200 [thread overview]
Message-ID: <20080402123639.GI12774@kernel.dk> (raw)
In-Reply-To: <20080402123620.GH12774@kernel.dk>
On Wed, Apr 02 2008, Jens Axboe wrote:
> On Wed, Apr 02 2008, Jens Axboe wrote:
> > On Wed, Apr 02 2008, Fabio Checconi wrote:
> > > > From: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > > > Date: Wed, Apr 02, 2008 12:59:21PM +0200
> > > >
> > > > On Wed, 2008-04-02 at 03:55 -0700, Paul E. McKenney wrote:
> > > > > On Wed, Apr 02, 2008 at 09:28:46AM +0200, Ingo Molnar wrote:
> > > > > >
> > > > > > * Jens Axboe <jens.axboe@oracle.com> wrote:
> > > > > >
> > > > > > > On Wed, Apr 02 2008, Pekka J Enberg wrote:
> > > > > > > > On Wed, 2 Apr 2008, Jens Axboe wrote:
> > > > > > > > > Good catch, I wonder why it didn't complain in my testing. I've added a
> > > > > > > > > patch to fix that, please see it here:
> > > > > > > >
> > > > > > > > You probably don't have kmemcheck in your kernel ;-)
> > > > > > >
> > > > > > > Ehm no, you are right :)
> > > > > >
> > > > > > ... and you can get kmemcheck by testing on x86.git/latest:
> > > > > >
> > > > > > http://people.redhat.com/mingo/x86.git/README
> > > > > >
> > > > > > ;-)
> > > > >
> > > > > I will check this when I get back to some bandwidth -- but in the meantime,
> > > > > does kmemcheck special-case SLAB_DESTROY_BY_RCU? It is legal to access
> > > > > newly-freed items in that case, as long as you did rcu_read_lock()
> > > > > before gaining a reference to them and don't hold the reference past
> > > > > the matching rcu_read_unlock().
> > > >
> > > > I don't think it does.
> > > >
> > > > It would have to register an call_rcu callback itself in order to mark
> > > > it freed - and handle the race with the object being handed out again.
> > > >
> > >
> > > I had the same problem while debugging a cfq-derived i/o scheduler,
> > > and I found nothing preventing the reuse of the freed memory.
> > > The patch below seemed to fix the logic.
> >
> > Thanks, from a first look this looks like it'll fix this bad rcu slab
> > usage. I'll give it some closer scrutiny and testing.
>
> (CC reinstated, sometimes mutt is really annoying and drops the person
> you are replying too :-(
(for real...)
>
> Looks good and tests fine as well. I've applied it, on top of the
> hlist_for_each_entry_safe_rcu() fix.
>
> http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=436151ad32b4a59e0d36165a7d6312545f126661
>
> --
> Jens Axboe
>
--
Jens Axboe
next prev parent reply other threads:[~2008-04-02 12:36 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-01 21:08 kmemcheck caught read from freed memory (cfq_free_io_context) Vegard Nossum
2008-04-01 21:36 ` Peter Zijlstra
2008-04-01 22:51 ` Paul E. McKenney
2008-04-02 6:15 ` Peter Zijlstra
2008-04-02 7:19 ` Jens Axboe
2008-04-02 10:24 ` Paul E. McKenney
2008-04-02 7:17 ` Jens Axboe
2008-04-02 7:20 ` Pekka J Enberg
2008-04-02 7:24 ` Jens Axboe
2008-04-02 7:28 ` Ingo Molnar
2008-04-02 7:31 ` Jens Axboe
2008-04-02 10:55 ` Paul E. McKenney
2008-04-02 10:59 ` Peter Zijlstra
2008-04-02 11:33 ` Fabio Checconi
2008-04-02 11:43 ` Jens Axboe
2008-04-02 12:36 ` Jens Axboe
2008-04-02 12:36 ` Jens Axboe [this message]
2008-04-02 12:55 ` Fabio Checconi
2008-04-02 12:58 ` Jens Axboe
2008-04-02 12:58 ` Jens Axboe
2008-04-02 13:16 ` Fabio Checconi
2008-04-02 16:14 ` Paul E. McKenney
2008-04-02 13:37 ` Paul E. McKenney
2008-04-02 13:41 ` Jens Axboe
2008-04-02 15:33 ` Paul E. McKenney
2008-04-02 16:31 ` Jens Axboe
2008-04-02 17:00 ` Paul E. McKenney
2008-04-02 13:32 ` Paul E. McKenney
2008-04-02 13:40 ` Jens Axboe
2008-04-02 16:15 ` Paul E. McKenney
2008-04-02 11:01 ` Pekka Enberg
2008-04-02 11:07 ` Jens Axboe
2008-04-02 11:08 ` Peter Zijlstra
2008-04-02 11:11 ` Pekka Enberg
2008-04-02 11:14 ` Peter Zijlstra
2008-04-02 11:18 ` Pekka Enberg
2008-04-02 17:36 ` Christoph Lameter
2008-04-02 11:14 ` Jens Axboe
2008-04-02 11:20 ` Peter Zijlstra
2008-04-02 11:25 ` Peter Zijlstra
2008-04-02 11:32 ` Jens Axboe
2008-04-02 11:37 ` Peter Zijlstra
2008-04-02 11:42 ` Jens Axboe
2008-04-02 11:47 ` Peter Zijlstra
2008-04-02 11:53 ` Jens Axboe
2008-04-02 12:13 ` Peter Zijlstra
2008-04-02 12:28 ` Jens Axboe
2008-04-02 13:26 ` Paul E. McKenney
2008-04-02 13:43 ` Andi Kleen
2008-04-02 12:26 ` Peter Zijlstra
2008-04-02 12:34 ` Jens Axboe
2008-04-02 16:08 ` Paul E. McKenney
2008-04-02 16:15 ` Vegard Nossum
2008-04-02 16:32 ` Pekka J Enberg
2008-04-02 18:23 ` Paul E. McKenney
2008-04-02 19:53 ` Pekka Enberg
2008-04-02 20:15 ` Paul E. McKenney
2008-04-03 15:18 ` Paul E. McKenney
2008-04-03 19:49 ` Pekka J Enberg
2008-04-03 21:27 ` Paul E. McKenney
2008-04-02 16:59 ` Paul E. McKenney
2008-04-02 17:31 ` Vegard Nossum
2008-04-02 10:40 ` Paul E. McKenney
2008-04-02 10:46 ` Pekka Enberg
2008-04-02 10:49 ` Peter Zijlstra
2008-04-02 10:54 ` Pekka J Enberg
2008-04-02 17:35 ` Christoph Lameter
2008-04-02 10:53 ` Peter Zijlstra
2008-04-02 11:13 ` Jens Axboe
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=20080402123639.GI12774@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=a.p.zijlstra@chello.nl \
--cc=fabio@gandalf.sssup.it \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulmck@linux.vnet.ibm.com \
--cc=penberg@cs.helsinki.fi \
--cc=vegard.nossum@gmail.com \
/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.