CHROMIUM: kick lockup detector on resume
authorSameer Nanda <snanda@chromium.org>
Thu, 26 Apr 2012 18:45:22 +0000 (11:45 -0700)
committerOlof Johansson <olof@lixom.net>
Fri, 1 Jun 2012 06:48:16 +0000 (23:48 -0700)
commit935166e85f33a24c3dbc154c20ec36082c57d88c
treef8fc4be2f3d019793559334e768c9edba22d719a
parenta79daee267138ddbf8576c15ad3621168a21ef43
CHROMIUM: kick lockup detector on resume

On the suspend/resume path the boot CPU does not go though the
offline->online transition. This breaks the NMI detector
post-resume since it depends on PMU MSR state that gets
lost when the system gets suspended.

As a workaround, force a CPU offline->online transition for the
lockup detector on the boot CPU during resume.

I still need to take this upstream but wanted to get this checked
into the Chrome OS kernel repo first since we are getting significant
number of system freezing reports from the field. We have no good way
of debugging these without the stack trace that the NMI watchdog
generates in such situations.

BUG=chrome-os-partner:9303
TEST=do a suspend resume cycle and then issue this command:
taskset 1 sh -c "echo nmilockup > /proc/breakme". The system should
reboot in about 10 seconds.

Change-Id: Ica9b206fa8b1b96475f136e31068a0a7621c758f
Signed-off-by: Sameer Nanda <snanda@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21212
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
include/linux/sched.h
kernel/power/suspend.c
kernel/watchdog.c