On Wed, Jul 02, 2025 at 12:05:10PM +0100, Yeoreum Yun wrote:
[...]
@@ -445,13 +445,37 @@ static int etm4_enable_trace_unit(struct etmv4_drvdata *drvdata) etm4x_relaxed_write32(csa, TRCRSR_TA, TRCRSR);
etm4x_allow_trace(drvdata);
- /*
* According to software usage PKLXF in Arm ARM (ARM DDI 0487 L.a),
* execute a Context synchronization event to guarantee the trace unit
* will observe the new values of the System registers.
*/
- if (!csa->io_mem)
isb();
But, when write to SYS_TRFCR_EL1 in etm4x_allow_trace(), it already does isb(). Is it redundant?
Good point. It is not sufficient. As a system register writing in kvm_tracing_set_el1_configuration(), this is why adds a ISB here.
Thanks, Leo