Messages in this thread | | | From | Ben Gainey <> | Subject | BUG in "perf: Suppress AUX/OVERWRITE records"? | Date | Mon, 25 Mar 2019 13:20:06 +0000 |
| |
Hi all
Regarding commit 1627314fb54a33ebd23bd08f2e215eaed0f44712 "perf: Suppress AUX/OVERWRITE records", I have found that I no longer receive PERF_RECORD_AUX on context switch when collecting data from the arm_spe PMU driver. This is because, on context switch, the arm_spe driver calls perf_aux_output_end with `handle->aux_flags == 0`, failing the test added in this commit.
This is a problem as it means when capturing data for multiple threads (using perf_event_open) where AUX data is written to a per-cpu buffer, I can no longer accurately attribute SPE AUX data to an individual thread.
If I read the intent of the commit as to remove OVERWRITE AUX records, then it seems the added if condition is incorrect and should probably be formulated as:
if ((handle->aux_flags & ~(u64)PERF_AUX_FLAG_OVERWRITE) || !handle- >aux_flags)
Is this correct (and would you like a patch?), or is my use of PERF_RECORD_AUX incorrect in this case?
Thanks
Ben
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
| |