Re: [PATCH v1 00/11] mm/kasan: support per-page shadow memory to reduce memory consumption

From: Dmitry Vyukov
Date: Tue May 16 2017 - 00:48:15 EST

On Mon, May 15, 2017 at 9:34 PM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
> On Mon, May 15, 2017 at 6:16 PM, <js1304@xxxxxxxxx> wrote:
>> From: Joonsoo Kim <>
>> Hello, all.
>> This is an attempt to recude memory consumption of KASAN. Please see
>> following description to get the more information.
>> 1. What is per-page shadow memory
> Hi Joonsoo,
> First I need to say that this is great work. I wanted KASAN to consume
> 1/8-th of _kernel_ memory rather than total physical memory for a long
> time.
> However, this implementation does not work inline instrumentation. And
> the inline instrumentation is the main mode for KASAN. Outline
> instrumentation is merely a rudiment to support gcc 4.9, and it needs
> to be removed as soon as we stop caring about gcc 4.9 (do we at all?
> is it the current compiler in any distro? Ubuntu 12 has 4.8, Ubuntu 14
> already has 5.4. And if you build gcc yourself or get a fresher
> compiler from somewhere else, you hopefully get something better than
> 4.9).
> Here is an example boot+scp log with inline instrumentation:
> Joonsoo, can you think of a way to take advantages of your approach,
> but make it work with inline instrumentation?
> Will it work if we map a single zero page for whole shadow initially,
> and then lazily map real shadow pages only for kernel memory, and then
> remap it again to zero pages when the whole KASAN_SHADOW_SCALE_SHIFT
> range of pages becomes unused (similarly to what you do in
> kasan_unmap_shadow())?

Just in case, I've uploaded a squashed version of this to codereview
site, if somebody will find it useful:
(side-by-side diffs is what you want)