linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lecopzer Chen <lecopzer@gmail.com>
To: will@kernel.org
Cc: akpm@linux-foundation.org, andreyknvl@google.com,
	ardb@kernel.org, aryabinin@virtuozzo.com, broonie@kernel.org,
	catalin.marinas@arm.com, dan.j.williams@intel.com,
	dvyukov@google.com, glider@google.com, gustavoars@kernel.org,
	kasan-dev@googlegroups.com, lecopzer.chen@mediatek.com,
	lecopzer@gmail.com, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
	linux-mm@kvack.org, linux@roeck-us.net, robin.murphy@arm.com,
	rppt@kernel.org, tyhicks@linux.microsoft.com,
	vincenzo.frascino@arm.com, yj.chiang@mediatek.com
Subject: Re: [PATCH v2 0/4] arm64: kasan: support CONFIG_KASAN_VMALLOC
Date: Thu,  4 Feb 2021 23:53:46 +0800	[thread overview]
Message-ID: <20210204155346.88028-1-lecopzer@gmail.com> (raw)
In-Reply-To: <20210204124914.GC20468@willie-the-truck>

> On Sat, Jan 09, 2021 at 06:32:48PM +0800, Lecopzer Chen wrote:
> > Linux supports KAsan for VMALLOC since commit 3c5c3cfb9ef4da9
> > ("kasan: support backing vmalloc space with real shadow memory")
> > 
> > Acroding to how x86 ported it [1], they early allocated p4d and pgd,
> > but in arm64 I just simulate how KAsan supports MODULES_VADDR in arm64
> > by not to populate the vmalloc area except for kimg address.
> 
> The one thing I've failed to grok from your series is how you deal with
> vmalloc allocations where the shadow overlaps with the shadow which has
> already been allocated for the kernel image. Please can you explain?


The most key point is we don't map anything in the vmalloc shadow address.
So we don't care where the kernel image locate inside vmalloc area.

  kasan_map_populate(kimg_shadow_start, kimg_shadow_end,...)

Kernel image was populated with real mapping in its shadow address.
I `bypass' the whole shadow of vmalloc area, the only place you can find
about vmalloc_shadow is
	kasan_populate_early_shadow((void *)vmalloc_shadow_end,
			(void *)KASAN_SHADOW_END);

	-----------  vmalloc_shadow_start
 |           |
 |           | 
 |           | <= non-mapping
 |           |
 |           |
 |-----------|
 |///////////|<- kimage shadow with page table mapping.
 |-----------|
 |           |
 |           | <= non-mapping
 |           |
 ------------- vmalloc_shadow_end
 |00000000000|
 |00000000000| <= Zero shadow
 |00000000000|
 ------------- KASAN_SHADOW_END

vmalloc shadow will be mapped 'ondemend', see kasan_populate_vmalloc()
in mm/vmalloc.c in detail.
So the shadow of vmalloc will be allocated later if anyone use its va.


BRs,
Lecopzer



  reply	other threads:[~2021-02-04 15:56 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-09 10:32 [PATCH v2 0/4] arm64: kasan: support CONFIG_KASAN_VMALLOC Lecopzer Chen
2021-01-09 10:32 ` [PATCH v2 1/4] arm64: kasan: don't populate vmalloc area for CONFIG_KASAN_VMALLOC Lecopzer Chen
2021-02-03 18:37   ` Ard Biesheuvel
2021-02-04  6:21     ` Lecopzer Chen
2021-02-04 12:45   ` Will Deacon
2021-02-04 14:46     ` Lecopzer Chen
2021-02-04 15:01       ` Will Deacon
2021-02-04 16:37         ` Lecopzer Chen
2021-02-05 17:18           ` Will Deacon
2021-02-05 17:30             ` Andrey Konovalov
2021-02-05 17:43               ` Will Deacon
2021-02-05 20:50                 ` Andrey Konovalov
2021-02-05 18:10             ` Lecopzer Chen
2021-01-09 10:32 ` [PATCH v2 2/4] arm64: kasan: abstract _text and _end to KERNEL_START/END Lecopzer Chen
2021-02-04 12:46   ` Will Deacon
2021-02-04 14:51     ` Lecopzer Chen
2021-02-04 14:55       ` Will Deacon
2021-02-04 16:06         ` Lecopzer Chen
2021-02-05 17:02           ` Will Deacon
2021-01-09 10:32 ` [PATCH v2 3/4] arm64: Kconfig: support CONFIG_KASAN_VMALLOC Lecopzer Chen
2021-01-09 10:32 ` [PATCH v2 4/4] arm64: kaslr: support randomized module area with KASAN_VMALLOC Lecopzer Chen
2021-01-27 23:04   ` Will Deacon
2021-01-28  8:53     ` Lecopzer Chen
2021-01-28 20:26       ` Will Deacon
2021-01-21 10:19 ` [PATCH v2 0/4] arm64: kasan: support CONFIG_KASAN_VMALLOC Lecopzer Chen
2021-01-21 17:44 ` Andrey Konovalov
2021-01-22 19:05   ` Will Deacon
2021-02-03 18:31 ` Ard Biesheuvel
2021-02-04 12:49 ` Will Deacon
2021-02-04 15:53   ` Lecopzer Chen [this message]
2021-02-04 17:57     ` Will Deacon
2021-02-04 18:41       ` Lecopzer Chen

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=20210204155346.88028-1-lecopzer@gmail.com \
    --to=lecopzer@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@google.com \
    --cc=ardb@kernel.org \
    --cc=aryabinin@virtuozzo.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=dan.j.williams@intel.com \
    --cc=dvyukov@google.com \
    --cc=glider@google.com \
    --cc=gustavoars@kernel.org \
    --cc=kasan-dev@googlegroups.com \
    --cc=lecopzer.chen@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@roeck-us.net \
    --cc=robin.murphy@arm.com \
    --cc=rppt@kernel.org \
    --cc=tyhicks@linux.microsoft.com \
    --cc=vincenzo.frascino@arm.com \
    --cc=will@kernel.org \
    --cc=yj.chiang@mediatek.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).