lkml.org 
[lkml]   [2018]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 33/48] perf tools: Move __perf_session__process_events args into struct
    Date
    We will add yet another argument in here, so put all
    of them to struct to make it easy to read.

    Link: http://lkml.kernel.org/n/tip-lt92qp4bs3igrh6patio0euy@git.kernel.org
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    ---
    tools/perf/util/session.c | 40 ++++++++++++++++++++++++---------------
    1 file changed, 25 insertions(+), 15 deletions(-)

    diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
    index 15314052084d..f21c209aeef1 100644
    --- a/tools/perf/util/session.c
    +++ b/tools/perf/util/session.c
    @@ -1796,6 +1796,12 @@ fetch_mmaped_event(struct perf_session *session,
    return event;
    }

    +struct process_args {
    + u64 data_offset;
    + u64 data_size;
    + u64 file_size;
    +};
    +
    /*
    * On 64bit we can mmap the data file in one go. No need for tiny mmap
    * slices. On 32bit we use 32MB.
    @@ -1809,13 +1815,13 @@ fetch_mmaped_event(struct perf_session *session,
    #endif

    static int __perf_session__process_events(struct perf_session *session,
    - u64 data_offset, u64 data_size,
    - u64 file_size)
    + struct process_args *args)
    {
    struct ordered_events *oe = &session->ordered_events;
    struct perf_tool *tool = session->tool;
    int fd = perf_data__fd(session->data);
    u64 head, page_offset, file_offset, file_pos, size;
    + u64 file_size = args->file_size;
    int err, mmap_prot, mmap_flags, map_idx = 0;
    size_t mmap_size;
    char *buf, *mmaps[NUM_MMAPS];
    @@ -1825,15 +1831,15 @@ static int __perf_session__process_events(struct perf_session *session,

    perf_tool__fill_defaults(tool);

    - page_offset = page_size * (data_offset / page_size);
    + page_offset = page_size * (args->data_offset / page_size);
    file_offset = page_offset;
    - head = data_offset - page_offset;
    + head = args->data_offset - page_offset;

    - if (data_size == 0)
    + if (args->data_size == 0)
    goto out;

    - if (data_offset + data_size < file_size)
    - file_size = data_offset + data_size;
    + if (args->data_offset + args->data_size < file_size)
    + file_size = args->data_offset + args->data_size;

    ui_progress__init_size(&prog, file_size, "Processing events...");

    @@ -1932,6 +1938,7 @@ static int __perf_session__process_events(struct perf_session *session,

    static int __perf_session__process_indexed_events(struct perf_session *session)
    {
    + struct process_args args;
    struct perf_tool *tool = session->tool;
    int err = 0, i;

    @@ -1941,9 +1948,11 @@ static int __perf_session__process_indexed_events(struct perf_session *session)
    if (!idx->size)
    continue;

    - err = __perf_session__process_events(session, idx->offset,
    - idx->size,
    - idx->offset + idx->size);
    + args.data_offset = idx->offset;
    + args.data_size = idx->size;
    + args.file_size = idx->offset + idx->size;
    +
    + err = __perf_session__process_events(session, &args);
    if (err < 0)
    break;
    }
    @@ -1956,9 +1965,9 @@ static int __perf_session__process_indexed_events(struct perf_session *session)

    int perf_session__process_events(struct perf_session *session)
    {
    + struct process_args args;
    struct perf_tool *tool = session->tool;
    struct perf_data *data = session->data;
    - u64 size = perf_data__size(data);
    int err;

    if (perf_session__register_idle_thread(session) < 0)
    @@ -1969,10 +1978,11 @@ int perf_session__process_events(struct perf_session *session)
    if (perf_has_index)
    return __perf_session__process_indexed_events(session);

    - err = __perf_session__process_events(session,
    - session->header.data_offset,
    - session->header.data_size,
    - size);
    + args.data_offset = session->header.data_offset;
    + args.data_size = session->header.data_size;
    + args.file_size = perf_data__size(data);
    +
    + err = __perf_session__process_events(session, &args);

    if (!tool->no_warn)
    perf_session__warn_about_errors(session);
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-09-13 14:58    [W:4.250 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site