Re: Fwd: [Bug 150021] New: kernel panic: "kernel tried to execute NX-protected page" when resuming from hibernate to disk
From: Rafael J. Wysocki <hidden>
Date: 2016-07-26 22:37:31
Also in:
lkml
On Tuesday, July 26, 2016 04:53:19 PM Josh Poimboeuf wrote:
On Tue, Jul 26, 2016 at 10:15:39PM +0200, Rafael J. Wysocki wrote:quoted
On Tuesday, July 26, 2016 09:39:05 AM Josh Poimboeuf wrote:quoted
On Tue, Jul 26, 2016 at 01:32:28PM +0200, Rafael J. Wysocki wrote:quoted
Hi, The following commit: commit 13523309495cdbd57a0d344c0d5d574987af007f Author: Josh Poimboeuf [off-list ref] Date: Thu Jan 21 16:49:21 2016 -0600 x86/asm/acpi: Create a stack frame in do_suspend_lowlevel() do_suspend_lowlevel() is a callable non-leaf function which doesn't honor CONFIG_FRAME_POINTER, which can result in bad stack traces. Create a stack frame for it when CONFIG_FRAME_POINTER is enabled. is reported to cause a resume-from-hibernation regression due to an attempt to execute an NX page (we've seen quite a bit of that recently). I'm asking the reporter to try 4.7, but if the problem is still there, we'll need to revert the above I'm afraid.So the bug is still there in 4.7 and it goes away after reverting the above commit. I guess I'll send a revert then.Hm, the code in wakeup_64.S seems quite magical, but I can't figure out why this change causes a panic. Is it really causing the panic or is it uncovering some other bug?
It doesn't matter really. It surely interacts with something in a really odd way, but that only means that its impact goes far beyond what was expected when it was applied. Its changelog is inadequate as a result and so on.
Maybe we should hold off on reverting until we understand the issue.
Which very well may take forever. And AFAICS this is a fix for a theoretical issue and it *reliably* triggers a very practical kernel panic for this particular reporter. I'd rather live with the theoretical issue unfixed to be honest. Thanks, Rafael