Re: [PATCH] coresight: cti: Fix hang in cti_disable_hw()

From: Suzuki K Poulose
Date: Wed Oct 19 2022 - 10:58:14 EST


Hi James

On 05/10/2022 14:14, James Clark wrote:
cti_enable_hw() and cti_disable_hw() are called from an atomic context
so shouldn't use runtime PM because it can result in a sleep when
communicating with firmware.

Since commit 3c6656337852 ("Revert "firmware: arm_scmi: Add clock
management to the SCMI power domain""), this causes a hang on Juno when
running the Perf Coresight tests or running this command:

perf record -e cs_etm//u -- ls

This was also missed until the revert commit because pm_runtime_put()
was called with the wrong device until commit 692c9a499b28 ("coresight:
cti: Correct the parameter for pm_runtime_put")

With lock and scheduler debugging enabled the following is output:


...


Fix the issue by removing the runtime PM calls completely. They are not
needed here because it must have already been done when building the
path for a trace.

Fixes: 835d722ba10a ("coresight: cti: Initial CoreSight CTI Driver")
Reported-by: Aishwarya TCV <Aishwarya.TCV@xxxxxxx>
Reported-by: Cristian Marussi <Cristian.Marussi@xxxxxxx>
Signed-off-by: Suzuki Poulose <Suzuki.Poulose@xxxxxxx>

I have applied this patch, changing the above to:

Suggested-by: ...

Suzuki