lkml.org 
[lkml]   [2013]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V5 08/12] perf tools: move struct ip_event
    Date
    struct ip_event assumes fixed positions for ip, pid
    and tid. That is no longer true with the addition of
    PERF_SAMPLE_IDENTIFIER.

    struct ip_event is no longer used except by hists_link.c.
    Move it there.

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    ---
    tools/perf/tests/hists_link.c | 23 +++++++++++++++++++----
    tools/perf/util/event.h | 11 -----------
    2 files changed, 19 insertions(+), 15 deletions(-)

    diff --git a/tools/perf/tests/hists_link.c b/tools/perf/tests/hists_link.c
    index 7e0ca15..cfdbfd9 100644
    --- a/tools/perf/tests/hists_link.c
    +++ b/tools/perf/tests/hists_link.c
    @@ -195,6 +195,19 @@ static struct sample fake_samples[][5] = {
    },
    };

    +/* PERF_SAMPLE_IP | PERF_SAMPLE_TID | * but not PERF_SAMPLE_IDENTIFIER */
    +struct ip_event {
    + struct perf_event_header header;
    + u64 ip;
    + u32 pid, tid;
    + unsigned char __more_data[];
    +};
    +
    +union perf_ip_event {
    + struct ip_event ip;
    + union perf_event event;
    +};
    +
    static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
    {
    struct perf_evsel *evsel;
    @@ -210,7 +223,7 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
    */
    list_for_each_entry(evsel, &evlist->entries, node) {
    for (k = 0; k < ARRAY_SIZE(fake_common_samples); k++) {
    - const union perf_event event = {
    + const union perf_ip_event ip_event = {
    .ip = {
    .header = {
    .misc = PERF_RECORD_MISC_USER,
    @@ -219,10 +232,11 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
    .ip = fake_common_samples[k].ip,
    },
    };
    + const union perf_event *event = &ip_event.event;

    sample.pid = ip_event.ip.pid;
    sample.ip = ip_event.ip.ip;
    - if (perf_event__preprocess_sample(&event, machine, &al,
    + if (perf_event__preprocess_sample(event, machine, &al,
    &sample, 0) < 0)
    goto out;

    @@ -236,7 +250,7 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
    }

    for (k = 0; k < ARRAY_SIZE(fake_samples[i]); k++) {
    - const union perf_event event = {
    + const union perf_ip_event ip_event = {
    .ip = {
    .header = {
    .misc = PERF_RECORD_MISC_USER,
    @@ -245,10 +259,11 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
    .ip = fake_samples[i][k].ip,
    },
    };
    + const union perf_event *event = &ip_event.event;

    sample.pid = ip_event.ip.pid;
    sample.ip = ip_event.ip.ip;
    - if (perf_event__preprocess_sample(&event, machine, &al,
    + if (perf_event__preprocess_sample(event, machine, &al,
    &sample, 0) < 0)
    goto out;

    diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
    index 3aef78c..a7b2245 100644
    --- a/tools/perf/util/event.h
    +++ b/tools/perf/util/event.h
    @@ -8,16 +8,6 @@
    #include "map.h"
    #include "build-id.h"

    -/*
    - * PERF_SAMPLE_IP | PERF_SAMPLE_TID | *
    - */
    -struct ip_event {
    - struct perf_event_header header;
    - u64 ip;
    - u32 pid, tid;
    - unsigned char __more_data[];
    -};
    -
    struct mmap_event {
    struct perf_event_header header;
    u32 pid, tid;
    @@ -162,7 +152,6 @@ struct tracing_data_event {

    union perf_event {
    struct perf_event_header header;
    - struct ip_event ip;
    struct mmap_event mmap;
    struct comm_event comm;
    struct fork_event fork;
    --
    1.7.11.7


    \
     
     \ /
      Last update: 2013-07-11 16:43    [W:2.436 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site