Revision 9aea5a65aa7a1af9a4236dfaeb0088f1624f9919 authored by Roland McGrath on 08 September 2010, 02:37:06 UTC, committed by Linus Torvalds on 10 September 2010, 15:10:26 UTC
An execve with a very large total of argument/environment strings
can take a really long time in the execve system call.  It runs
uninterruptibly to count and copy all the strings.  This change
makes it abort the exec quickly if sent a SIGKILL.

Note that this is the conservative change, to interrupt only for
SIGKILL, by using fatal_signal_pending().  It would be perfectly
correct semantics to let any signal interrupt the string-copying in
execve, i.e. use signal_pending() instead of fatal_signal_pending().
We'll save that change for later, since it could have user-visible
consequences, such as having a timer set too quickly make it so that
an execve can never complete, though it always happened to work before.

Signed-off-by: Roland McGrath <roland@redhat.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 7993bc1
Raw File
Kconfig.debug
config DEBUG_PAGEALLOC
	bool "Debug page memory allocations"
	depends on DEBUG_KERNEL && ARCH_SUPPORTS_DEBUG_PAGEALLOC
	depends on !HIBERNATION || !PPC && !SPARC
	depends on !KMEMCHECK
	---help---
	  Unmap pages from the kernel linear mapping after free_pages().
	  This results in a large slowdown, but helps to find certain types
	  of memory corruption.

config WANT_PAGE_DEBUG_FLAGS
	bool

config PAGE_POISONING
	bool "Debug page memory allocations"
	depends on DEBUG_KERNEL && !ARCH_SUPPORTS_DEBUG_PAGEALLOC
	depends on !HIBERNATION
	select DEBUG_PAGEALLOC
	select WANT_PAGE_DEBUG_FLAGS
	---help---
	   Fill the pages with poison patterns after free_pages() and verify
	   the patterns before alloc_pages(). This results in a large slowdown,
	   but helps to find certain types of memory corruption.

	   This option cannot be enabled in combination with hibernation as
	   that would result in incorrect warnings of memory corruption after
	   a resume because free pages are not saved to the suspend image.
back to top