On Tue, Dec 09, 2025 at 01:40:35PM +0000, James Clark wrote:
[...]
if (!is_trbe_running(trbsr))
perf_aux_output_flag(handle, PERF_AUX_FLAG_COLLISION);
perf_aux_output_flag(handle, PERF_AUX_FLAG_PARTIAL);This is interesting. So there is a no possibility for the records to be overridden in the perf ring buffer and incomplete record is all that can happen when TRBE is stopped, without stopping the ETE first ? Could both of these scenarios might be possible as well ?
There's no chance of overwriting because that would be the TRUNCATED case and the event would get disabled. PARTIAL seems to be when there was an error that's recoverable in the driver only, but as in my other comment I don't think the extra complexity is necessary and always using TRUNCATED would be enough.
If I extend a bit, I would say that the TRUNCATED flag is used to prevent buffer overwrites, while the other flags indicate why a record is incomplete.
Thanks, Leo