mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
perf tools: Handle partial AUX records and print a warning
This patch decodes the 'partial' flag in AUX records and prints a warning to the user, so that they don't have to guess why their PT traces contain gaps (or missing altogether): Warning: AUX data had gaps in it 8 times out of 8! Are you running a KVM guest in the background? Trying to be even more helpful, we will detect if the user's kvm driver sets up exclusive VMX root mode for the entire lifespan of the kvm process: Reloading kvm_intel module with vmm_exclusive=0 will reduce the gaps to only guest's timeslices. Note however, that you'll still have gaps in cpu-wide traces even with vmm_exclusive=0, but the number of gaps will be below 100% (as opposed to the above example). Currently this is the only reason for partial records. Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Cc: Vince Weaver <vince@deater.net> Link: http://lkml.kernel.org/r/8760j941ig.fsf@ashishki-desk.ger.corp.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
38a33f0712
commit
05a1f47ed4
3 changed files with 28 additions and 5 deletions
|
@ -1288,11 +1288,12 @@ int perf_event__process_exit(struct perf_tool *tool __maybe_unused,
|
|||
|
||||
size_t perf_event__fprintf_aux(union perf_event *event, FILE *fp)
|
||||
{
|
||||
return fprintf(fp, " offset: %#"PRIx64" size: %#"PRIx64" flags: %#"PRIx64" [%s%s]\n",
|
||||
return fprintf(fp, " offset: %#"PRIx64" size: %#"PRIx64" flags: %#"PRIx64" [%s%s%s]\n",
|
||||
event->aux.aux_offset, event->aux.aux_size,
|
||||
event->aux.flags,
|
||||
event->aux.flags & PERF_AUX_FLAG_TRUNCATED ? "T" : "",
|
||||
event->aux.flags & PERF_AUX_FLAG_OVERWRITE ? "O" : "");
|
||||
event->aux.flags & PERF_AUX_FLAG_OVERWRITE ? "O" : "",
|
||||
event->aux.flags & PERF_AUX_FLAG_PARTIAL ? "P" : "");
|
||||
}
|
||||
|
||||
size_t perf_event__fprintf_itrace_start(union perf_event *event, FILE *fp)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue