perf intel-pt: Fix overlap detection to identify consecutive buffers correctly
Overlap detection was not not updating the buffer's 'consecutive' flag. Marking buffers consecutive has the advantage that decoding begins from the start of the buffer instead of the first PSB. Fix overlap detection to identify consecutive buffers correctly. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1520431349-30689-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
b9bae2c841
commit
117db4b27b
@@ -207,14 +207,17 @@ static void intel_pt_dump_event(struct intel_pt *pt, unsigned char *buf,
|
||||
static int intel_pt_do_fix_overlap(struct intel_pt *pt, struct auxtrace_buffer *a,
|
||||
struct auxtrace_buffer *b)
|
||||
{
|
||||
bool consecutive = false;
|
||||
void *start;
|
||||
|
||||
start = intel_pt_find_overlap(a->data, a->size, b->data, b->size,
|
||||
pt->have_tsc);
|
||||
pt->have_tsc, &consecutive);
|
||||
if (!start)
|
||||
return -EINVAL;
|
||||
b->use_size = b->data + b->size - start;
|
||||
b->use_data = start;
|
||||
if (b->use_size && consecutive)
|
||||
b->consecutive = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user