Comment 5 for bug 453682

Revision history for this message
Maen Suleiman (maen-marvell) wrote : RE: [Bug 453682] Re: late resume failure on dove

This behaviour is caused because the kernel gets busy in handling endless amount of page faults.
The problem is in the system call restart mechanism when a system call received signal. The kernel (do_signal() at arch/arm/kernel/signal.c) restarts a system call by adding code at the stack of the process, this works fine for ARMv5, but for v6 and v7 this won’t work because the stack area has the NX bit ( non executable).

This portion of code occurs only if CONFIG_OABI_COMPAT is enabled.

----------------
Maen Suleiman - Embedded Controllers & SoC Line

 -----Original Message-----
 From: <email address hidden> [mailto:<email address hidden>] On Behalf Of
 Lo?c Minier
 Sent: Saturday, October 17, 2009 10:55 AM
 To: Maen Suleiman
 Subject: [Bug 453682] Re: late resume failure on dove

 @Maen: OABI_COMPAT is set:
 /boot/config-2.6.31-204-dove:CONFIG_OABI_COMPAT=y
 /boot/config-2.6.31-206-dove:CONFIG_OABI_COMPAT=y
 /boot/config-2.6.31-208-dove:CONFIG_OABI_COMPAT=y

 I think this is on purpose for compatibility with older ARM binaries
 from Debian. I think we could consider dropping it in the future, but
 I'd like to understand why it would interfere with suspend/resume?

 --
 late resume failure on dove
 https://bugs.launchpad.net/bugs/453682
 You received this bug notification because you are subscribed to linux-
 mvl-dove in ubuntu.

 Status in “linux-mvl-dove” package in Ubuntu: New

 Bug description:
 Suspend/resume on dove works, kinda. The system seems to power down into a
 low power state. However on resume, the system is left in a nearly
 unusable state. Everything slows to a crawl, and all processes seem to be
 chewing up, at minimum, 1.6% cpu.

 ProblemType: KernelOops
 Annotation: This occured during a previous suspend and prevented it from
 resuming properly. The resume processing hung very near the end and will
 have appeared to have completed normally.
 Architecture: armel
 Date: Fri Oct 16 23:34:16 2009
 DistroRelease: Ubuntu 9.10
 ExecutablePath: /usr/share/apport/apportcheckresume
 Failure: late resume
 InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Alpha armel+dove (20091016)
 InterpreterPath: /usr/bin/python2.6
 Package: linux-image-2.6.31-208-dove 2.6.31-208.16
 ProcCmdline: /usr/bin/python /usr/share/apport/apportcheckresume
 ProcEnviron: PATH=(custom, no user)
 ProcVersionSignature: Ubuntu 2.6.31-208.16-hostname
 SourcePackage: linux-mvl-dove
 Tags: resume suspend resume-late-hang
 Title: late resume failure
 Uname: Linux 2.6.31-208-dove armv7l
 UserGroups: