From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933670AbZIDKM2 (ORCPT ); Fri, 4 Sep 2009 06:12:28 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933656AbZIDKMZ (ORCPT ); Fri, 4 Sep 2009 06:12:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38665 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933583AbZIDKMV (ORCPT ); Fri, 4 Sep 2009 06:12:21 -0400 Date: Fri, 4 Sep 2009 06:09:26 -0400 From: Amerigo Wang To: linux-kernel@vger.kernel.org Cc: tony.luck@intel.com, linux-ia64@vger.kernel.org, Neil Horman , "Eric W. Biederman" , kamezawa.hiroyu@jp.fujitsu.com, Andi Kleen , Michael Ellerman , Amerigo Wang , "M. Mohan Kumar" , akpm@linux-foundation.org, bernhard.walle@gmx.de, Fenghua Yu , Ingo Molnar , Anton Vorontsov Message-Id: <20090904101153.5220.97139.sendpatchset@localhost.localdomain> In-Reply-To: <20090904101047.5220.20618.sendpatchset@localhost.localdomain> References: <20090904101047.5220.20618.sendpatchset@localhost.localdomain> Subject: [Patch 6/8] powerpc: implement crashkernel=auto Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since in patch 2/8 we already implement the generic part, this will add the rest part for powerpc. Signed-off-by: WANG Cong Cc: Anton Vorontsov Cc: M. Mohan Kumar Cc: Michael Ellerman --- Index: linux-2.6/arch/powerpc/include/asm/kexec.h =================================================================== --- linux-2.6.orig/arch/powerpc/include/asm/kexec.h +++ linux-2.6/arch/powerpc/include/asm/kexec.h @@ -39,6 +39,28 @@ typedef void (*crash_shutdown_t)(void); #ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_AUTO_RESERVE + +#ifndef KEXEC_AUTO_THRESHOLD +#define KEXEC_AUTO_THRESHOLD (1ULL<<31) /* 2G */ +#endif + +#ifndef arch_default_crash_base +extern +unsigned long long __init arch_default_crash_base(void); +#define arch_default_crash_base arch_default_crash_base +#endif + +#ifndef arch_default_crash_size +extern +unsigned long long __init arch_default_crash_size(unsigned long long); +#define arch_default_crash_size arch_default_crash_size +#endif + +#endif + +#include + /* * This function is responsible for capturing register states if coming * via panic or invoking dump using sysrq-trigger. Index: linux-2.6/arch/powerpc/kernel/machine_kexec.c =================================================================== --- linux-2.6.orig/arch/powerpc/kernel/machine_kexec.c +++ linux-2.6/arch/powerpc/kernel/machine_kexec.c @@ -61,6 +61,30 @@ void machine_kexec(struct kimage *image) for(;;); } +#ifdef CONFIG_KEXEC_AUTO_RESERVE +unsigned long long __init arch_default_crash_base(void) +{ + return KDUMP_KERNELBASE; +} + +unsigned long long __init arch_default_crash_size(unsigned long long total_size) +{ + if (total_size < KEXEC_AUTO_THRESHOLD) + return 0; + if (total_size < (1ULL<<32)) + return 1ULL<<27; + else { +#ifdef CONFIG_64BIT + if (total_size > (1ULL<<37)) /* 128G */ + return 1ULL<<32; /* 4G */ + return 1ULL<