Subject: [PATCH v5sub1 7/8] arm64: move kernel image to base of vmalloc area

From: [email-masked] (Andrey Ryabinin)
Date: Mon, 15 Feb 2016 17:28:02 +0300

On 02/12/2016 07:06 PM, Catalin Marinas wrote:
> On Fri, Feb 12, 2016 at 03:38:46PM +0000, Sudeep Holla wrote:
>>
>> On 12/02/16 15:26, Catalin Marinas wrote:
>>> On Fri, Feb 12, 2016 at 04:17:09PM +0100, Ard Biesheuvel wrote:
>>>> On 12 February 2016 at 16:10, Catalin Marinas <[email-masked]> wrote:
>>>>> On Fri, Feb 12, 2016 at 04:02:58PM +0100, Ard Biesheuvel wrote:
>>>>>> On 12 February 2016 at 15:58, Catalin Marinas <[email-masked]> wrote:
>>>>>>> On Mon, Feb 01, 2016 at 11:54:52AM +0100, Ard Biesheuvel wrote:
>>>>>>>> This moves the module area to right before the vmalloc area, and
>>>>>>>> moves the kernel image to the base of the vmalloc area. This is
>>>>>>>> an intermediate step towards implementing KASLR, which allows the
>>>>>>>> kernel image to be located anywhere in the vmalloc area.
>>>>>>>>
>>>>>>>> Signed-off-by: Ard Biesheuvel <[email-masked]>
>>>>>>>
>>>>>>> This patch is causing lots of KASAN warnings on Juno (interestingly, it
>>>>>>> doesn't seem to trigger on Seattle, though we only tried for-next/core).
>>>>>>> I pushed the branch that I'm currently using here:
>>>>>>>
>>>>>>> git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux for-next/kernmap
>>>>>>>
>>>>>>>
>>>>>>> A typical error (though its place varies based on the config options,
>>>>>>> kernel layout):
>>>>>>>
>>>>>>> BUG: KASAN: stack-out-of-bounds in clockevents_program_event+0x28/0x1b0 at addr ffffffc936257cc8
>>>>>>
>>>>>> Can you confirm that these are stack accesses? I was having similar
>>>>>> errors before, and I ended up creating the kasan zero page patch
>>>>>> because it turned out the kasan shadow page in question was aliased
>>>>>> and the stack writes were occurring elsewhere.
>>>>>
>>>>> It's possible, we are looking into this. Is there any other patch I miss on
>>>>> the above branch?
>>>>
>>>> I don't think so but I will check
>>>
>>> Commit 7b1af9795773 ("arm64: kasan: ensure that the KASAN zero page is
>>> mapped read-only") was merged in -rc2 while the branch above is based on
>>> -rc1. Anyway, I merged it into -rc2 and the errors are similar.
>>>
>>
>> Sorry to add more confusion, but I observed similar KASAN warning
>> with latest mainline(v4.5-rc3+, commit c05235d50f68) with below diff.
> 
> I can reproduce this with UBSAN enabled (log below for the record).
> 
> So far, we have:
> 
> KASAN+for-next/kernmap goes wrong
> KASAN+UBSAN goes wrong
> 
> Enabled individually, KASAN, UBSAN and for-next/kernmap seem fine. I may
> have to trim for-next/core down until we figure out where the problem
> is.
> 
> 
> BUG: KASAN: stack-out-of-bounds in find_busiest_group+0x164/0x16a0 at addr ffffffc93665bc8c

Can it be related to TLB conflicts, which supposed to be fixed in "arm64: kasan: avoid TLB conflicts" patch
from "arm64: mm: rework page table creation" series ?