Board enters ramdump on stopping Adsprpcd

Hi,

I have been working on kernel 4.14.0 with the snapshot for file system : 382.

The adsprpcd service I used is :

[Unit]
Description=ADSP RPC daemon

[Service]
Environment=ADSP_LIBRARY_PATH=/usr/local/lib/
Environment=LD_LIBRARY_PATH=/usr/local/lib/
ExecStart=/usr/local/bin/adsprpcd
SuccessExitStatus=66

[Install]
WantedBy=multi-user.target

On trying to shutdown/reboot the board crashed and entered Ramdump mode :

platform adsp-pil:smd-edge:fastrpc:cb@8: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.887872] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@8 from group 0
[ 1200.897383] platform adsp-pil:smd-edge:fastrpc:cb@9: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.904116] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@9 from group 1
[ 1200.914513] platform adsp-pil:smd-edge:fastrpc:cb@10: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.920341] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@10 from group 2
[ 1200.930066] platform adsp-pil:smd-edge:fastrpc:cb@11: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.936627] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@11 from group 3
[ 1200.946480] platform adsp-pil:smd-edge:fastrpc:cb@12: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.952997] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@12 from group 4
[ 1200.962789] platform adsp-pil:smd-edge:fastrpc:cb@5: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.969394] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@5 from group 5
[ 1200.978920] platform adsp-pil:smd-edge:fastrpc:cb@6: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1200.985710] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@6 from group 6
[ 1200.995111] platform adsp-pil:smd-edge:fastrpc:cb@7: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1201.001959] iommu: Removing device adsp-pil:smd-edge:fastrpc:cb@7 from group 7
[ 1201.028906] failed to send QMI message
[ 1201.028934] qcom,slim-ngd-ctrl 91c0000.slim: QMI send req fail -104
[ 1201.031579] qcom,slim-ngd-ctrl 91c0000.slim: SLIM QMI power request failed:-104
[ 1201.126370] platform adsp-pil:smd-edge:apr:q6asm:dais: Dropping the link to 1600000.arm,smmu-lpass_q6
[ 1201.126520] iommu: Removing device adsp-pil:smd-edge:apr:q6asm:dais from group 10
[ 1206.247356] qcom_adsp_pil adsp-pil: timed out on wait
[ 1206.276590] remoteproc remoteproc1: stopped remote processor adsp-pil
[ 1208.312979] remoteproc remoteproc1: crash detected in adsp-pil: type watchdog
[ 1211.623356] qcom_adsp_pil adsp-pil: start timed out
[ 1211.655724] remoteproc remoteproc1: can’t start rproc adsp-pil: -110

For this I tried to increase the Stop Wait time in driver : qcom_adsp_pil.c +154

ret = wait_for_completion_timeout(&adsp->stop_done,

–msecs_to_jiffies(5000));

++msecs_to_jiffies(100000));

Is there any insight so as to how to stop the service ?
Any systemd change to handle Execstop in a proper manner ?

Thanks in advance…

The problem is in the kernel. There is a fix for the problem that has been merged into newer versions of the kernel – I don’t remember what patch it is, or what version it landed in, but it is definitely in 5.4 and newer. I did attempt to apply it to 4.14, but it was far too big of a mess to deal with.

My suggestion is to upgrade kernel. The db820c is supported mostly by mainline. All the additional parts are available in Linaro’s 5.7-qcomlt branch.

thanks for the responce, I have tried to stop the remoteproc as:

echo stop > /sys/class/remoteproc/remoteporoc0/state
sleep 2

I have added these as a K33adspctrl in the /etc/init.d/rcS and the process did stop without any issues so far, do you think this implementation can cause any new issues later?

Regards,
Yash M J