Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 2 Apr 2008 09:08:09 -0700
On Wed, Apr 02, 2008 at 02:01:13PM +0300, Pekka Enberg wrote:
Hi Paul,
On Wed, Apr 2, 2008 at 1:55 PM, Paul E. McKenney
<paulmck@xxxxxxxxxxxxxxxxxx> wrote:
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().
No, kmemcheck is work in progress and does not know about
SLAB_DESTROY_BY_RCU yet. The reason I asked Vegard to post the warning
was because Peter, Vegard, and myself identified this particular
warning as a real problem. But yeah, kmemcheck can cause false
positives for RCU for now.
Would the following be an appropriate fix? It seems to me to be in
the same spirit as the existing check for s->ctor.
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
---
slub_kmemcheck.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/slub_kmemcheck.c b/mm/slub_kmemcheck.c
index 8620a8b..e07f62a 100644
--- a/mm/slub_kmemcheck.c
+++ b/mm/slub_kmemcheck.c
@@ -93,6 +93,6 @@ kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object)
void
kmemcheck_slab_free(struct kmem_cache *s, void *object)
{
- if (!s->ctor)
+ if (!s->ctor && !(s->flags & SLAB_DESTROY_BY_RCU))
kmemcheck_mark_freed(object, s->objsize);
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Vegard Nossum
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- References:
- kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Vegard Nossum
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Peter Zijlstra
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Jens Axboe
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Pekka J Enberg
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Jens Axboe
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Ingo Molnar
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Paul E. McKenney
- Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- From: Pekka Enberg
- kmemcheck caught read from freed memory (cfq_free_io_context)
- Prev by Date: Re: 2.6.25-rc7: Ugh.
- Next by Date: Re: 2.6.25-rc7: Ugh.
- Previous by thread: Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- Next by thread: Re: kmemcheck caught read from freed memory (cfq_free_io_context)
- Index(es):
Relevant Pages
|