lkml.org 
[lkml]   [2016]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/8] perf jit: Move clockid validation
    Date
    From: Adrian Hunter <ajhunter@gmail.com>

    Move clockid validation into jit_process() so it can later be
    made conditional.

    Signed-off-by: Adrian Hunter <ajhunter@gmail.com>
    ---
    tools/perf/builtin-inject.c | 24 ------------------------
    tools/perf/util/jitdump.c | 23 +++++++++++++++++++++++
    2 files changed, 23 insertions(+), 24 deletions(-)

    diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
    index 1635533921e8..319b7b4f7743 100644
    --- a/tools/perf/builtin-inject.c
    +++ b/tools/perf/builtin-inject.c
    @@ -729,23 +729,6 @@ static int __cmd_inject(struct perf_inject *inject)
    return ret;
    }

    -#ifdef HAVE_LIBELF_SUPPORT
    -static int
    -jit_validate_events(struct perf_session *session)
    -{
    - struct perf_evsel *evsel;
    -
    - /*
    - * check that all events use CLOCK_MONOTONIC
    - */
    - evlist__for_each(session->evlist, evsel) {
    - if (evsel->attr.use_clockid == 0 || evsel->attr.clockid != CLOCK_MONOTONIC)
    - return -1;
    - }
    - return 0;
    -}
    -#endif
    -
    int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
    {
    struct perf_inject inject = {
    @@ -853,13 +836,6 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
    }
    #ifdef HAVE_LIBELF_SUPPORT
    if (inject.jit_mode) {
    - /*
    - * validate event is using the correct clockid
    - */
    - if (jit_validate_events(inject.session)) {
    - fprintf(stderr, "error, jitted code must be sampled with perf record -k 1\n");
    - return -1;
    - }
    inject.tool.mmap2 = perf_event__jit_repipe_mmap2;
    inject.tool.mmap = perf_event__jit_repipe_mmap;
    inject.tool.ordered_events = true;
    diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c
    index bd9e44f9fff2..cd272cc21e05 100644
    --- a/tools/perf/util/jitdump.c
    +++ b/tools/perf/util/jitdump.c
    @@ -99,6 +99,21 @@ jit_close(struct jit_buf_desc *jd)
    }

    static int
    +jit_validate_events(struct perf_session *session)
    +{
    + struct perf_evsel *evsel;
    +
    + /*
    + * check that all events use CLOCK_MONOTONIC
    + */
    + evlist__for_each(session->evlist, evsel) {
    + if (evsel->attr.use_clockid == 0 || evsel->attr.clockid != CLOCK_MONOTONIC)
    + return -1;
    + }
    + return 0;
    +}
    +
    +static int
    jit_open(struct jit_buf_desc *jd, const char *name)
    {
    struct jitheader header;
    @@ -157,6 +172,14 @@ jit_open(struct jit_buf_desc *jd, const char *name)
    goto error;
    }

    + /*
    + * validate event is using the correct clockid
    + */
    + if (jit_validate_events(jd->session)) {
    + pr_err("error, jitted code must be sampled with perf record -k 1\n");
    + goto error;
    + }
    +
    bs = header.total_size - sizeof(header);

    if (bs > bsz) {
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-03-03 13:41    [W:2.254 / U:0.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site