From mboxrd@z Thu Jan 1 00:00:00 1970 From: sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: kexec failures on ipq4019 Date: Mon, 18 Jun 2018 12:01:07 +0530 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "kexec" Errors-To: kexec-bounces+glkk-kexec=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: Andy Strohman Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Hi Andy, On 2018-06-16 06:37, Andy Strohman wrote: > Hi, > > I'm trying to get kexec to work consistently for ipq4019. I load > the crash kernel like this: > > kexec --type zImage -p zImage-initramfs > --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1 > reset_devices" --image-size=34419456 > > I have reserved 64MB of memory for the crash kernel with parameter: > crashkernel=64M > > This seems to work ~70% of the time. When it doesn't work, I see the > "bye!" message followed by a 5-10 second hang without output. Then > the machine resets. > > I've been testing with: > echo c > /proc/sysrq-trigger > > Does anyone have an idea of what may be causing the failures or how > to troubleshoot this? > I will try to reproduce this and get back to you shortly. Regards, Sricharan > I'm using OpenWRT with kernel 4.14.37. I added the following patch > in order to load the crash kernel: > > --- a/arch/arm/mach-qcom/platsmp.c > +++ b/arch/arm/mach-qcom/platsmp.c > @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus > } > } > > +/* Needed by kexec and platform_can_cpu_hotplug() */ > +int qcom_cpu_kill(unsigned int cpu) > +{ > + return 1; > +} > + > static const struct smp_operations smp_msm8660_ops __initconst = { > .smp_prepare_cpus = qcom_smp_prepare_cpus, > .smp_secondary_init = qcom_secondary_init, > @@ -358,6 +364,7 @@ static const struct smp_operations qcom_ > .smp_boot_secondary = kpssv2_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > .cpu_die = qcom_cpu_die, > + .cpu_kill = qcom_cpu_kill, > #endif > }; > CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2", > &qcom_smp_kpssv2_ops); > > > Thanks, > > Andy