From: Michal Hocko <mhocko@kernel.org>
To: Christoph Lameter <cl@linux.com>
Cc: Kees Cook <keescook@chromium.org>,
Andrew Morton <akpm@linux-foundation.org>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Linux-MM <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: Add additional consistency check
Date: Tue, 11 Apr 2017 20:30:36 +0200 [thread overview]
Message-ID: <20170411183035.GD21171@dhcp22.suse.cz> (raw)
In-Reply-To: <alpine.DEB.2.20.1704111254390.25069@east.gentwo.org>
On Tue 11-04-17 13:03:01, Cristopher Lameter wrote:
> On Tue, 11 Apr 2017, Michal Hocko wrote:
>
> > >
> > > There is a flag SLAB_DEBUG_OBJECTS that is available for this check.
> >
> > Which is way too late, at least for the kfree path. page->slab_cache
> > on anything else than PageSlab is just a garbage. And my understanding
> > of the patch objective is to stop those from happening.
>
> We are looking here at SLAB. SLUB code can legitimately have a compound
> page there because large allocations fallback to the page allocator.
>
> Garbage would be attempting to free a page that has !PageSLAB set but also
> is no compound page. That condition is already checked in kfree() with a
> BUG_ON() and that BUG_ON has been there for a long time.
Are you talking about SLAB or SLUB here? The only
BUG_ON(PageSlab(page)) in SLAB I can see is in kmem_freepages and that
is way too late because we already rely on cachep which is not
trustworthy. Or am I missing some other place you have in mind?
> Certainly we can
> make SLAB consistent if there is no check there already. Slab just
> attempts a free on that object which will fail too.
>
> So we are already handling that condition. Why change things? Add a BUG_ON
> if you want to make SLAB consistent.
I hate to repeat myself but let me do it for the last time in this
thread. BUG_ON for something that is recoverable is completely
inappropriate. And I consider kfree with a bogus pointer something that
we can easily recover from. There are other cases where the internal
state of the allocator is compromised to the point where continuing is
not possible and BUGing there is acceptable but kfree(garbage) is not
that case.
--
Michal Hocko
SUSE Labs
--
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>
next prev parent reply other threads:[~2017-04-11 18:30 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-31 16:40 [PATCH] mm: Add additional consistency check Kees Cook
2017-03-31 21:33 ` Andrew Morton
2017-04-01 0:04 ` Kees Cook
2017-04-03 3:40 ` Michael Ellerman
2017-04-03 14:03 ` Christoph Lameter
2017-04-03 14:53 ` Matthew Wilcox
2017-04-04 11:30 ` Michal Hocko
2017-04-04 15:07 ` Christoph Lameter
2017-04-04 15:16 ` Michal Hocko
2017-04-04 15:46 ` Kees Cook
2017-04-04 15:58 ` Michal Hocko
2017-04-04 16:02 ` Kees Cook
2017-04-04 19:13 ` Christoph Lameter
2017-04-04 19:42 ` Michal Hocko
2017-04-04 19:58 ` Christoph Lameter
2017-04-04 20:13 ` Michal Hocko
2017-04-11 4:58 ` Kees Cook
2017-04-11 13:46 ` Michal Hocko
2017-04-11 14:14 ` Kees Cook
2017-04-11 14:19 ` Michal Hocko
2017-04-11 16:05 ` Kees Cook
2017-04-11 16:16 ` Christoph Lameter
2017-04-11 16:19 ` Kees Cook
2017-04-11 16:23 ` Christoph Lameter
2017-04-11 16:30 ` Kees Cook
2017-04-11 16:26 ` Christoph Lameter
2017-04-11 16:41 ` Michal Hocko
2017-04-11 18:03 ` Christoph Lameter
2017-04-11 18:30 ` Michal Hocko [this message]
2017-04-11 18:44 ` Christoph Lameter
2017-04-11 18:55 ` Michal Hocko
2017-04-11 18:59 ` Christoph Lameter
2017-04-11 19:39 ` Michal Hocko
2017-04-17 15:22 ` Christoph Lameter
2017-04-18 6:41 ` Michal Hocko
2017-04-18 13:31 ` Christoph Lameter
2017-04-18 13:37 ` Christoph Lameter
2017-04-28 1:11 ` Kees Cook
2017-04-28 6:16 ` Michal Hocko
2017-04-27 12:06 ` Michal Hocko
2017-04-11 18:30 ` Christoph Lameter
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=20170411183035.GD21171@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).