Re: [PATCHv2] lkdtm: Add READ_AFTER_FREE test

From: Kees Cook
Date: Fri Feb 26 2016 - 17:33:25 EST

On Fri, Feb 26, 2016 at 2:19 PM, Laura Abbott <labbott@xxxxxxxxxx> wrote:
> I did a quick hack of zero poisoning for the slab allocator and I
> didn't see any improvement in hackbench performance which is fairly
> sensitive to slab performance. This doesn't surprise me when I
> actually think about it.
> Before I sent out my last set of performance optimizations for
> SLUB debug path, I did a profile with ftrace to see if there was
> anything else quick I could do. My profiling showed that the
> poisoning itself was not where most of the allocation time was
> spent. 25-50% of the time was being spent in removing the CPU slab.
> Considering poisoning means that the CPU slab is never really used,
> this can probably be improved. It's worth noting that the
> PAX_MEMORY_SANITIZE implementation still uses the fast path so it
> isn't affected here. (The trade off is a minor penalty on the
> fast path even when poisoning is disabled which isn't acceptable
> to the maintainers currently.)

Oh right, all of this is still the slow path...

> Basically, until we've optimized other things I don't think the
> zero poisoning will have a significant effect on performance.
> The next set of optimizations will involve changing some of the
> guts of the SLUB allocator. I have some ideas how to approach this
> but we'll see if they pan out.

And we can't just have a CONFIG for the fast-path sanitization? Then
it's not in anyone's way, etc?


Kees Cook
Chrome OS & Brillo Security