Commit 4c454843 authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo

perf auxtrace: Make auxtrace_queues__add_buffer() return buffer_ptr

In preparation for supporting AUX area sampling buffers,
auxtrace_queues__add_buffer() needs to be more generic. To that end, make
it return buffer_ptr instead of the caller.
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1520327598-1317-6-git-send-email-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent a356a597
...@@ -305,8 +305,11 @@ static int auxtrace_queues__split_buffer(struct auxtrace_queues *queues, ...@@ -305,8 +305,11 @@ static int auxtrace_queues__split_buffer(struct auxtrace_queues *queues,
static int auxtrace_queues__add_buffer(struct auxtrace_queues *queues, static int auxtrace_queues__add_buffer(struct auxtrace_queues *queues,
struct perf_session *session, struct perf_session *session,
unsigned int idx, unsigned int idx,
struct auxtrace_buffer *buffer) struct auxtrace_buffer *buffer,
struct auxtrace_buffer **buffer_ptr)
{ {
int err;
if (session->one_mmap) { if (session->one_mmap) {
buffer->data = buffer->data_offset - session->one_mmap_offset + buffer->data = buffer->data_offset - session->one_mmap_offset +
session->one_mmap_addr; session->one_mmap_addr;
...@@ -317,14 +320,20 @@ static int auxtrace_queues__add_buffer(struct auxtrace_queues *queues, ...@@ -317,14 +320,20 @@ static int auxtrace_queues__add_buffer(struct auxtrace_queues *queues,
buffer->data_needs_freeing = true; buffer->data_needs_freeing = true;
} else if (BITS_PER_LONG == 32 && } else if (BITS_PER_LONG == 32 &&
buffer->size > BUFFER_LIMIT_FOR_32_BIT) { buffer->size > BUFFER_LIMIT_FOR_32_BIT) {
int err;
err = auxtrace_queues__split_buffer(queues, idx, buffer); err = auxtrace_queues__split_buffer(queues, idx, buffer);
if (err) if (err)
return err; return err;
} }
return auxtrace_queues__queue_buffer(queues, idx, buffer); err = auxtrace_queues__queue_buffer(queues, idx, buffer);
if (err)
return err;
/* FIXME: Doesn't work for split buffer */
if (buffer_ptr)
*buffer_ptr = buffer;
return 0;
} }
static bool filter_cpu(struct perf_session *session, int cpu) static bool filter_cpu(struct perf_session *session, int cpu)
...@@ -359,13 +368,11 @@ int auxtrace_queues__add_event(struct auxtrace_queues *queues, ...@@ -359,13 +368,11 @@ int auxtrace_queues__add_event(struct auxtrace_queues *queues,
buffer->size = event->auxtrace.size; buffer->size = event->auxtrace.size;
idx = event->auxtrace.idx; idx = event->auxtrace.idx;
err = auxtrace_queues__add_buffer(queues, session, idx, buffer); err = auxtrace_queues__add_buffer(queues, session, idx, buffer,
buffer_ptr);
if (err) if (err)
goto out_err; goto out_err;
if (buffer_ptr)
*buffer_ptr = buffer;
return 0; return 0;
out_err: out_err:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment