linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
	linux-mm <linux-mm@kvack.org>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Ingo Molnar <mingo@elte.hu>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [BUG] SLOB's krealloc() seems bust
Date: Tue, 07 Oct 2008 10:58:19 -0500	[thread overview]
Message-ID: <1223395099.13453.363.camel@calx> (raw)
In-Reply-To: <48EB7E59.7070308@linux-foundation.org>

On Tue, 2008-10-07 at 10:20 -0500, Christoph Lameter wrote:
> Matt Mackall wrote:
> 
> > We can't dynamically determine whether a pointer points to a kmalloced
> > object or not. kmem_cache_alloc objects have no header and live on the
> > same pages as kmalloced ones.
> 
> Could you do a heuristic check? Assume that this is a kmalloc object and then
> verify the values in the small control block? If the values are out of line
> then this cannot be a kmalloc'ed object.

The control block is two bytes, so it doesn't have a lot of redundancy.
Best we can do is check that it doesn't claim the object runs off the
page. Or, for simplicity, isn't bigger than a page. On 32-bit x86,
that's equivalent to checking the top 5 bits of ->units are clear.

But it makes more sense to just do the check in SLUB. First, SLUB can
actually do the check reliably. Second, someone adding a bogus ksize
call to a random piece of kernel code is more likely to be using SLUB
when they do it. And third, it doesn't negatively impact SLOB's size.
In other words, SLUB is effectively SLOB's debugging switch when it
comes to external problems.

-- 
Mathematics is the supreme nostalgia of our time.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-10-07 15:58 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-07 13:57 Peter Zijlstra
2008-10-07 14:07 ` Christoph Lameter
2008-10-07 14:13   ` Peter Zijlstra
2008-10-07 14:26     ` Christoph Lameter
2008-10-07 15:00   ` Matt Mackall
2008-10-07 15:20     ` Christoph Lameter
2008-10-07 15:58       ` Matt Mackall [this message]
2008-10-07 16:10     ` Peter Zijlstra
2008-10-07 16:37       ` Linus Torvalds
2008-10-07 16:37       ` Matt Mackall
2008-10-07 16:57         ` Pekka Enberg
2008-10-07 17:13           ` Matt Mackall
2008-10-07 17:31             ` Pekka Enberg
2008-10-07 23:08               ` Matt Mackall
2008-10-08  4:22                 ` Nick Piggin
2008-10-08  4:46                   ` Matt Mackall
2008-10-08  4:54                     ` Nick Piggin
2008-10-08  5:11                       ` Nick Piggin
2008-10-08  5:15                         ` Matt Mackall
2008-10-08  6:43                           ` Peter Zijlstra
2008-10-08  7:25                             ` Pekka Enberg
2008-10-08  7:37                               ` Peter Zijlstra
2008-10-08  7:39                                 ` Pekka Enberg
2008-10-07 17:57         ` Linus Torvalds
2008-10-07 18:11           ` Peter Zijlstra
2008-10-07 18:18             ` Linus Torvalds
2008-10-08 19:51               ` Matt Mackall

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=1223395099.13453.363.camel@calx \
    --to=mpm@selenic.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=cl@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=nickpiggin@yahoo.com.au \
    --cc=torvalds@linux-foundation.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