mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
perf header: Don't assume there's no attr info if no sample ids is provided
This primarily fixes perf-report, which didn't report the correct type
of event if perf-record was called to record one event different from
'cycles':
$ perf record -e instructions true
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.007 MB perf.data (~295 samples) ]
$ perf report | head -n1
# Events: 7 cycles
LPU-Reference: <[email protected]>
Signed-off-by: Franck Bui-Huu <[email protected]>
This commit is contained in:
parent
d214afbd81
commit
60e677373b
1 changed files with 8 additions and 3 deletions
|
|
@ -946,11 +946,16 @@ perf_header__find_attr(u64 id, struct perf_header *header)
|
|||
|
||||
/*
|
||||
* We set id to -1 if the data file doesn't contain sample
|
||||
* ids. Check for this and avoid walking through the entire
|
||||
* list of ids which may be large.
|
||||
* ids. This can happen when the data file contains one type
|
||||
* of event and in that case, the header can still store the
|
||||
* event attribute information. Check for this and avoid
|
||||
* walking through the entire list of ids which may be large.
|
||||
*/
|
||||
if (id == -1ULL)
|
||||
if (id == -1ULL) {
|
||||
if (header->attrs > 0)
|
||||
return &header->attr[0]->attr;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < header->attrs; i++) {
|
||||
struct perf_header_attr *attr = header->attr[i];
|
||||
|
|
|
|||
Loading…
Reference in a new issue