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
_______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec