On 23/06/2025 9:59 am, Keita Morisaki wrote:
We have the ETM driver performing the save/restore of ETM context during a CPUidle. This is only done when the ETM/ETE is described to be loosing context over PM operation. If this is not done (via DT), the driver doesn't do anything. This could be problematic. Could you try adding:
"arm,coresight-loses-context-with-cpu"
property to the ETE nodes and see if it makes a difference ?
I tried this in our environment, and this worked well. The "arm,coresight-loses-context-with-cpu" property was what we needed. Thank you so much again for the swift response with the useful information!
Best, Keita
Hi Keita,
Thanks for the report. We discussed internally and decided that it would be better for the driver to always save the context by default, because this mistake is easy to make. Saving when it doesn't need to be saved doesn't do any harm, but not saving when it should be causes quite bad bugs.
So "arm,coresight-loses-context-with-cpu" will be ignored in the future and we'll add a new flag like "arm,coresight-save-context" if anyone wants the optimization of not saving.
Thanks James
On Mon, Jun 23, 2025 at 01:05:13PM +0100, James Clark wrote:
[...]
Hi Keita,
Thanks for the report. We discussed internally and decided that it would be better for the driver to always save the context by default, because this mistake is easy to make. Saving when it doesn't need to be saved doesn't do any harm, but not saving when it should be causes quite bad bugs.
So "arm,coresight-loses-context-with-cpu" will be ignored in the future and we'll add a new flag like "arm,coresight-save-context" if anyone wants the optimization of not saving.
I'm a bit concerned that we might provide information that has not yet been finalized.
Before landing any changes in the mainline kernel, at this stage, I'd recommend using the option "coresight_etm4x.pm_save_enable=2" in the Linux kernel command line. This provides a reliable configuration for production environment, as it ensures consistency between the current mainline kernel and any future versions.
Setting coresight_etm4x.pm_save_enable=2 overrides any setting in the device tree binding and always enables context save and restore for the ETM / ETE.
If coresight_etm4x.pm_save_enable is set to 1, the ETM driver will never perform context save and restore. Setting it to 0 (the default value) allows the device tree or ACPI to determine whether context save and restore should be performed.
If you are trying to upstream the DT binding for ETE, you need to omit the property "arm,coresight-loses-context-with-cpu" since it is not defined in the ETE device tree YAML schema now. As James mentioned, we need to consolidate this part.
Thanks, Leo