mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
UPSTREAM: coresight: trbe: Make sure we have enough space
The TRBE driver makes sure that there is enough space for a meaningful
run, otherwise pads the given space and restarts the offset calculation
once. But there is no guarantee that we may find space or hit "no space".
Make sure that we repeat the step until, either :
- We have the minimum space
OR
- There is NO space at all.
Bug: 213931796
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20211019163153.3692640-13-suzuki.poulose@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
(cherry picked from commit adf35d0586)
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Change-Id: I6d18039e90aaba17fc0071806795288a02318144
This commit is contained in:
committed by
Todd Kjos
parent
6f1a11858f
commit
e7fc4a9e62
@@ -477,10 +477,14 @@ static unsigned long trbe_normal_offset(struct perf_output_handle *handle)
|
||||
* If the head is too close to the limit and we don't
|
||||
* have space for a meaningful run, we rather pad it
|
||||
* and start fresh.
|
||||
*
|
||||
* We might have to do this more than once to make sure
|
||||
* we have enough required space.
|
||||
*/
|
||||
if (limit && ((limit - head) < trbe_min_trace_buf_size(handle))) {
|
||||
while (limit && ((limit - head) < trbe_min_trace_buf_size(handle))) {
|
||||
trbe_pad_buf(handle, limit - head);
|
||||
limit = __trbe_normal_offset(handle);
|
||||
head = PERF_IDX2OFF(handle->head, buf);
|
||||
}
|
||||
return limit;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user