From: Laura Abbott <labbott@redhat.com>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Laura Abbott <labbott@fedoraproject.org>
Cc: Christoph Lameter <cl@linux.com>,
Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
kernel-hardening@lists.openwall.com,
Kees Cook <keescook@chromium.org>
Subject: Re: [RFC][PATCH 0/3] Speed up SLUB poisoning + disable checks
Date: Wed, 3 Feb 2016 10:46:25 -0800 [thread overview]
Message-ID: <56B24B01.30306@redhat.com> (raw)
In-Reply-To: <20160126070320.GB28254@js1304-P5Q-DELUXE>
On 01/25/2016 11:03 PM, Joonsoo Kim wrote:
> On Mon, Jan 25, 2016 at 05:15:10PM -0800, Laura Abbott wrote:
>> Hi,
>>
>> Based on the discussion from the series to add slab sanitization
>> (lkml.kernel.org/g/<1450755641-7856-1-git-send-email-laura@labbott.name>)
>> the existing SLAB_POISON mechanism already covers similar behavior.
>> The performance of SLAB_POISON isn't very good. With hackbench -g 20 -l 1000
>> on QEMU with one cpu:
>
> I doesn't follow up that discussion, but, I think that reusing
> SLAB_POISON for slab sanitization needs more changes. I assume that
> completeness and performance is matter for slab sanitization.
>
> 1) SLAB_POISON isn't applied to specific kmem_cache which has
> constructor or SLAB_DESTROY_BY_RCU flag. For debug, it's not necessary
> to be applied, but, for slab sanitization, it is better to apply it to
> all caches.
The grsecurity patches get around this by calling the constructor again
after poisoning. It could be worth investigating doing that as well
although my focus was on the cases without the constructor.
>
> 2) SLAB_POISON makes object size bigger so natural alignment will be
> broken. For example, kmalloc(256) cache's size is 256 in normal
> case but it would be 264 when SLAB_POISON is enabled. This causes
> memory waste.
The grsecurity patches also bump the size up to put the free pointer
outside the object. For sanitization purposes it is cleaner to have
no pointers in the object after free
>
> In fact, I'd prefer not reusing SLAB_POISON. It would make thing
> simpler. But, it's up to Christoph.
>
> Thanks.
>
It basically looks like trying to poison on the fast path at all
will have a negative impact even with the feature is turned off.
Christoph has indicated this is not acceptable so we are forced
to limit it to the slow path only if we want runtime enablement.
If we're limited to the slow path only, we might as well work
with SLAB_POISON to make it faster. We can reevaluate if it turns
out the poisoning isn't fast enough to be useful.
Thanks,
Laura
--
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:[~2016-02-03 18:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-26 1:15 [RFC][PATCH 0/3] Speed up SLUB poisoning + disable checks Laura Abbott
2016-01-26 1:15 ` [RFC][PATCH 1/3] slub: Drop lock at the end of free_debug_processing Laura Abbott
2016-01-26 16:19 ` Christoph Lameter
2016-01-26 1:15 ` [RFC][PATCH 2/3] slub: Don't limit debugging to slow paths Laura Abbott
2016-01-26 8:48 ` Paul Bolle
2016-01-26 1:15 ` [PATCH 3/3] slub: Add option to skip consistency checks Laura Abbott
2016-01-26 15:00 ` Christoph Lameter
2016-01-26 7:03 ` [RFC][PATCH 0/3] Speed up SLUB poisoning + disable checks Joonsoo Kim
2016-01-26 15:01 ` Christoph Lameter
2016-01-26 15:21 ` Joonsoo Kim
2016-02-03 18:46 ` Laura Abbott [this message]
2016-02-03 21:06 ` Kees Cook
2016-02-03 21:35 ` Laura Abbott
2016-02-03 23:02 ` Christoph Lameter
2016-02-04 0:46 ` Laura Abbott
2016-02-04 3:23 ` Christoph Lameter
2016-01-26 14:57 ` 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=56B24B01.30306@redhat.com \
--to=labbott@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=labbott@fedoraproject.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).