mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 14:43:16 +00:00
PM / Sleep: increase ftrace coverage in suspend/resume
Change where ftrace is disabled and re-enabled during system suspend/resume to allow tracing of device driver pm callbacks. Ftrace will now be turned off when suspend reaches disable_nonboot_cpus() instead of at the very beginning of system suspend. Ftrace was disabled during suspend/resume back in 2008 by Steven Rostedt as he discovered there was a conflict in the enable_nonboot_cpus() call (see commit f42ac38 "ftrace: disable tracing for suspend to ram"). This change preserves his fix by disabling ftrace, but only at the function where it is known to cause problems. The new change allows tracing of the device level code for better debug. [rjw: Changelog] Signed-off-by: Todd Brandt <todd.e.brandt@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
3b2f64d00c
commit
3831261eb0
@ -210,6 +210,7 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
|
||||
goto Platform_wake;
|
||||
}
|
||||
|
||||
ftrace_stop();
|
||||
error = disable_nonboot_cpus();
|
||||
if (error || suspend_test(TEST_CPUS))
|
||||
goto Enable_cpus;
|
||||
@ -232,6 +233,7 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
|
||||
|
||||
Enable_cpus:
|
||||
enable_nonboot_cpus();
|
||||
ftrace_start();
|
||||
|
||||
Platform_wake:
|
||||
if (need_suspend_ops(state) && suspend_ops->wake)
|
||||
@ -265,7 +267,6 @@ int suspend_devices_and_enter(suspend_state_t state)
|
||||
goto Close;
|
||||
}
|
||||
suspend_console();
|
||||
ftrace_stop();
|
||||
suspend_test_start();
|
||||
error = dpm_suspend_start(PMSG_SUSPEND);
|
||||
if (error) {
|
||||
@ -285,7 +286,6 @@ int suspend_devices_and_enter(suspend_state_t state)
|
||||
suspend_test_start();
|
||||
dpm_resume_end(PMSG_RESUME);
|
||||
suspend_test_finish("resume devices");
|
||||
ftrace_start();
|
||||
resume_console();
|
||||
Close:
|
||||
if (need_suspend_ops(state) && suspend_ops->end)
|
||||
|
Loading…
x
Reference in New Issue
Block a user