Re: [Resend][PATCH] x86/power/64: Always create temporary identity mapping correctly

From: Thomas Garnier
Date: Tue Aug 09 2016 - 11:00:40 EST


On Tue, Aug 9, 2016 at 6:30 AM, Jiri Kosina <jikos@xxxxxxxxxx> wrote:
> On Tue, 9 Aug 2016, Jiri Kosina wrote:
>
>> > 210e7a43fa90 mm: SLUB freelist randomization
>> > 7c00fce98c3e mm: reorganize SLAB freelist randomization
>> > 4ff5308744f5 x86/mm: Do not reference phys addr beyond kernel
>> > 90397a417796 x86/mm: Add memory hotplug support for KASLR memory randomization
>> > a95ae27c2ee1 x86/mm: Enable KASLR for vmalloc memory regions
>> > 021182e52fe0 x86/mm: Enable KASLR for physical mapping memory regions
>>
>> Okay, I did one-by-one reverts, and the one above, i.e.
>>
>> commit 021182e52fe01c1f7b126f97fd6ba048dc4234fd
>> Author: Thomas Garnier <thgarnie@xxxxxxxxxx>
>> Date: Tue Jun 21 17:47:03 2016 -0700
>>
>> x86/mm: Enable KASLR for physical mapping memory regions
>>
>> is the one that is the culprit on my machine. With this one reverted,
>> resume hibernation doesn't reboot (tripple fault?), but proceeds
>> succesfully.

My .config is attached. It is basically defconfig (x86_64) + kvmconfig
plus the following:

CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
CONFIG_RANDOMIZE_BASE=y
CONFIG_X86_NEED_RELOCS=y
CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_RANDOMIZE_MEMORY=y
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
CONFIG_X86_PTDUMP_CORE=y
CONFIG_X86_PTDUMP=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_PANIC_ON_OOPS=y
CONFIG_KGDB=y
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF4=y

>
> As discussed with Rafael privately, I also tried this very patch
> (x86/power/64: Always create temporary identity mapping correctly) on top
> of the reverted revert of 021182e52fe01c1f7b1 (see the full log below),
> but such kernel triple faults on resume as well.
>
> 87c38d2 x86/power/64: Always create temporary identity mapping correctly
> 3cb504a Revert "Revert "x86/mm: Enable KASLR for physical mapping memory regions""
> 758850d Revert "x86/mm: Enable KASLR for physical mapping memory regions"
> 4a02dfb Revert "x86/mm: Enable KASLR for vmalloc memory regions"
> 037863f Revert "x86/mm: Add memory hotplug support for KASLR memory randomization"
> 3416a21 Revert "x86/mm: Do not reference phys addr beyond kernel"
> 69227be Revert "mm: reorganize SLAB freelist randomization"
> a1d8d71 Revert "mm: SLUB freelist randomization"
>
> IOW, 021182e52f introduces a bug for which there is no existing fix yet.

You mean it is something different from the previous KASLR bugs we saw?

>
> --
> Jiri Kosina
> SUSE Labs
>

Attachment: kaslr_hibernation_config
Description: Binary data