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

From: Thomas Garnier
Date: Wed Aug 10 2016 - 21:17:15 EST


On Wed, Aug 10, 2016 at 5:35 PM, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
> On Wed, Aug 10, 2016 at 11:59 PM, Jiri Kosina <jikos@xxxxxxxxxx> wrote:
>> On Wed, 10 Aug 2016, Rafael J. Wysocki wrote:
>>
>>> So I used your .config to generate one for my test machine and with
>>> that I can reproduce.
>>
>> Was that the config I've sent, or did Boris provide one as well? Which one
>> are you able to reproduce with please?
>
> It's the Boris' one.
>
> Moreover, I have found the options that make the difference: unsetting
> CONFIG_PROVE_LOCKING and CONFIG_DEBUG_LOCK_ALLOC (which also will
> unset CONFIG_LOCKDEP AFAICS) in it makes hibernation work again with
> CONFIG_RANDOMIZE_MEMORY set and with the $subject patch applied.
>
> Unbelievable, but that's what I'm seeing.

Nice find!

>
> Now, that leads to a few questions:
>
> - How does lockdep change the picture so it matters for hibernation?
> - Why is hibernation the only piece that's affected?
> - Why is RANDOMIZE_MEMORY necessary to make this breakage show up?
>
> Thomas, any ideas?

No idea so far. I will investigate though.

We had an unrelated issue with CONFIG_DEBUG_PAGEALLOC on early boot. I
don't think it was related because it was on early boot and with
certain e820 memory layout (and PUD randomization that I disabled on
the previous patch test). The fix is on tip:
http://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit/?id=fb754f958f8e46202c1efd7f66d5b3db1208117d

>
> Thanks,
> Rafael