[1/2] powerpc: Disable Collaborative Memory Manager for kdump

Message ID 200812182114.mBILEmQY016988@d01av01.pok.ibm.com
State Accepted, archived
Commit 2218108e182fd8a6d9106077833ed7ad05fc8e75
Delegated to: Paul Mackerras
Headers show

Commit Message

Brian King Dec. 18, 2008, 9:13 p.m.
When running Active Memory Sharing, the Collaborative Memory
Manager (CMM) may mark some pages as "loaned" with the hypervisor.
Periodically, the CMM will query the hypervisor for a loan request,
which is a single signed value. When kexec'ing into a kdump kernel,
the CMM driver in the kdump kernel is not aware of the pages the
previous kernel had marked as "loaned", so the hypervisor and the
CMM driver are out of sync. This results in the CMM driver getting
a negative loan request, which can then get treated as a large unsigned
value and can cause kdump to hang due to the CMM driver inflating too
large. Since there really is no clean way for the CMM driver in the kdump
kernel to clean this up, simply disable CMM in the kdump kernel. This
fixes hangs we were seeing doing kdump with AMS.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>

 arch/powerpc/platforms/pseries/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


diff -puN arch/powerpc/platforms/pseries/Kconfig~powerpc_cmm_no_kdump arch/powerpc/platforms/pseries/Kconfig
--- linux-2.6/arch/powerpc/platforms/pseries/Kconfig~powerpc_cmm_no_kdump	2008-12-17 09:52:54.000000000 -0600
+++ linux-2.6-bjking1/arch/powerpc/platforms/pseries/Kconfig	2008-12-17 09:52:54.000000000 -0600
@@ -54,7 +54,7 @@  config PPC_SMLPAR
 config CMM
 	tristate "Collaborative memory management"
-	depends on PPC_SMLPAR
+	depends on PPC_SMLPAR && !CRASH_DUMP
 	default y
 	  Select this option, if you want to enable the kernel interface