Revision 494de90098784b8e2797598cefdd34188884ec2e authored by Mel Gorman on 03 July 2008, 04:27:51 UTC, committed by Linus Torvalds on 03 July 2008, 16:22:59 UTC
The non-NUMA case of build_zonelist_cache() would initialize the
zlcache_ptr for both node_zonelists[] to NULL.

Which is problematic, since non-NUMA only has a single node_zonelists[]
entry, and trying to zero the non-existent second one just overwrote the
nr_zones field instead.

As kswapd uses this value to determine what reclaim work is necessary,
the result is that kswapd never reclaims.  This causes processes to
stall frequently in low-memory situations as they always direct reclaim.
This patch initialises zlcache_ptr correctly.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Tested-by: Dan Williams <dan.j.williams@intel.com>
[ Simplified patch a bit ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent c461a97
Raw File
Kconfig
#
# General architecture dependent options
#

config OPROFILE
	tristate "OProfile system profiling (EXPERIMENTAL)"
	depends on PROFILING
	depends on HAVE_OPROFILE
	help
	  OProfile is a profiling system capable of profiling the
	  whole system, include the kernel, kernel modules, libraries,
	  and applications.

	  If unsure, say N.

config HAVE_OPROFILE
	def_bool n

config KPROBES
	bool "Kprobes"
	depends on KALLSYMS && MODULES
	depends on HAVE_KPROBES
	help
	  Kprobes allows you to trap at almost any kernel address and
	  execute a callback function.  register_kprobe() establishes
	  a probepoint and specifies the callback.  Kprobes is useful
	  for kernel debugging, non-intrusive instrumentation and testing.
	  If in doubt, say "N".

config KRETPROBES
	def_bool y
	depends on KPROBES && HAVE_KRETPROBES

config HAVE_KPROBES
	def_bool n

config HAVE_KRETPROBES
	def_bool n

config HAVE_DMA_ATTRS
	def_bool n
back to top