On Thu, Mar 3, 2016 at 1:43 AM, Todd Brandt <todd.e.brandt@xxxxxxxxxxxxxxx> wrote: > On Thu, 2016-03-03 at 01:19 +0100, Rafael J. Wysocki wrote: >> On Thu, Mar 3, 2016 at 1:05 AM, Todd Brandt >> <todd.e.brandt@xxxxxxxxxxxxxxx> wrote: >> > Pause/unpause graph tracing around do_suspend_lowlevel as it has >> > inconsistent call/return info after it jumps to the wakeup vector. >> > The graph trace buffer will otherwise become misaligned and >> > may eventually crash and hang on suspend. >> > >> > To reproduce the issue and test the fix: >> > Run a function_graph trace over suspend/resume and set the graph >> > function to suspend_devices_and_enter. This consistently hangs the >> > system without this fix. >> > >> > Signed-off-by: Todd Brandt <todd.e.brandt@xxxxxxxxxxxxxxx> >> >> OK >> >> I guess we'll need that in -stable, right? > > Sure, it's pretty important. The new analyze_suspend features are going > to rely pretty heavily on full graph trace of suspend (all we can do is > standby and freeze now because of the bug). Thanks! OK, applied, but let Steven and the x86 folks see it. >> >> > --- >> > arch/x86/kernel/acpi/sleep.c | 7 +++++++ >> > 1 file changed, 7 insertions(+) >> > >> > diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c >> > index d1daead..311360e 100644 >> > --- a/arch/x86/kernel/acpi/sleep.c >> > +++ b/arch/x86/kernel/acpi/sleep.c >> > @@ -16,6 +16,7 @@ >> > #include <asm/cacheflush.h> >> > #include <asm/realmode.h> >> > >> > +#include <linux/ftrace.h> >> > #include "../../realmode/rm/wakeup.h" >> > #include "sleep.h" >> > >> > @@ -107,7 +108,13 @@ int x86_acpi_suspend_lowlevel(void) >> > saved_magic = 0x123456789abcdef0L; >> > #endif /* CONFIG_64BIT */ >> > >> > + /* >> > + * Pause/unpause graph tracing around do_suspend_lowlevel as it has >> > + * inconsistent call/return info after it jumps to the wakeup vector >> > + */ >> > + pause_graph_tracing(); >> > do_suspend_lowlevel(); >> > + unpause_graph_tracing(); >> > return 0; >> > } >> > >> > -- >> > 2.1.4 >> > >> > -- Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html