|
There might be multiple GPU activities in a work period (500ms).
Current gpu_metrics implementation merged all GPU activities for the
given work period and emit single tracepoint rather than emitting
per-activity multiple tracepoints. This loses the granularity of each
activity even if the total active time of a context (application) for
a work period is correct. For better granularity, we instead emit one tracepoint per GPU activity.
Since we don't have to merge activities in a work period, some members
of struct kbase_gpu_metrics_ctx are no longer needed.
|------------------- Work-period 1 -----------------------|
S1---E1 S2----E2 S3------------E3
For work-period 1, previously 1 tracepoint was emitted and now 3 will be
emitted for better granularity of GPU activity.
|------------------- Work-period 2 -----------------------|
S1---E1
S2--------E2
S3------------------E3
For work-period 2 (overlapped case), they will be treated as 1 activity.
Hence 1 tracepoint will be emitted as previously.
'multiple null jobs' will be skipped as the kbase change will emit
tracepoint per each activity.
Bug: 301904509
Test: Perfetto trace inspection (Oriole, Felix, Husky)
Provenance: https://code.ipdelivery.arm.com/c/GPU/mali-ddk/+/6314
Change-Id: I21b8ebe7af3b429dcd9fef20dabf97295a2a5ab7
Signed-off-by: Mattias Simonsson <mattiass@google.com>
|