kexec failures on ipq4019

Andy Strohman andy at
Fri Jun 15 18:07:04 PDT 2018


  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:

  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'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,
  .cpu_die = qcom_cpu_die,
+    .cpu_kill       = qcom_cpu_kill,
 CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",



-- <>

More information about the kexec mailing list