Thread (55 messages) 55 messages, 4 authors, 2025-12-16

Re: [PATCH 11/19] coresight: trbe: Apply overwrite erratum for only wrap event

From: Suzuki K Poulose <suzuki.poulose@arm.com>
Date: 2025-12-02 12:05:56
Also in: linux-perf-users, lkml

On 01/12/2025 11:22, Leo Yan wrote:
quoted hunk ↗ jump to hunk
The overwrite erratum occurs only on wrap events, so apply the extra
wrap condition check in the workaround.

Signed-off-by: Leo Yan <leo.yan@arm.com>
---
  drivers/hwtracing/coresight/coresight-trbe.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c
index e579ea98523c24d23a0cd265dcdd0a46b52b52da..2600af12a8fb94bb8c74efda2a101aacd01b0b34 100644
--- a/drivers/hwtracing/coresight/coresight-trbe.c
+++ b/drivers/hwtracing/coresight/coresight-trbe.c
@@ -714,7 +714,7 @@ static unsigned long trbe_get_trace_size(struct perf_output_handle *handle,
  	 * 64bytes. Thus we ignore the potential triggering of the erratum
  	 * on WRAP and limit the data to LIMIT.
  	 */
-	if (wrap)
+	if (wrap && trbe_may_overwrite_in_fill_mode(buf->cpudata))
  		write = get_trbe_limit_pointer();
This must be trbe_may_write_out_of_range() ?

Suzuki

quoted hunk ↗ jump to hunk
  	else
  		write = get_trbe_write_pointer();
@@ -736,7 +736,7 @@ static unsigned long trbe_get_trace_size(struct perf_output_handle *handle,
  	 * the space we skipped with IGNORE packets. And we are always
  	 * guaranteed to have at least a PAGE_SIZE space in the buffer.
  	 */
-	if (trbe_may_overwrite_in_fill_mode(buf->cpudata) &&
+	if (wrap && trbe_may_overwrite_in_fill_mode(buf->cpudata) &&
  	    !WARN_ON(size < overwrite_skip))
  		__trbe_pad_buf(buf, start_off, overwrite_skip);
  
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help