Commit dde4c3d4 authored by Umesh Nerlige Ramappa's avatar Umesh Nerlige Ramappa Committed by Tvrtko Ursulin
Browse files

drm/i915/perf: Consider OA buffer boundary when zeroing out reports



For reports that are not powers of 2, reports at the end of the OA
buffer may get split across the buffer boundary. When zeroing out such
reports, take the split into consideration.

v2: Use OA_BUFFER_SIZE (Ashutosh)

Fixes: 09a36015 ("drm/i915/perf: Clear out entire reports after reading if not power of 2 size")
Signed-off-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230616173402.699776-1-umesh.nerlige.ramappa@intel.com


(cherry picked from commit 40b1588a)
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
parent 5c413188
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -868,8 +868,17 @@ static int gen8_append_oa_reports(struct i915_perf_stream *stream,
			oa_report_id_clear(stream, report32);
			oa_timestamp_clear(stream, report32);
		} else {
			u8 *oa_buf_end = stream->oa_buffer.vaddr +
					 OA_BUFFER_SIZE;
			u32 part = oa_buf_end - (u8 *)report32;

			/* Zero out the entire report */
			if (report_size <= part) {
				memset(report32, 0, report_size);
			} else {
				memset(report32, 0, part);
				memset(oa_buf_base, 0, report_size - part);
			}
		}
	}