• [PATCH v3 1/6] perf header: Record first sample time and last sampl

    From Jiri Olsa@21:1/5 to Jin Yao on Mon Oct 2 14:00:01 2017
    On Thu, Sep 28, 2017 at 08:45:16PM +0800, Jin Yao wrote:

    SNIP

    + return ret;
    +
    + return do_write(ff, &evlist->last_sample_time,
    + sizeof(evlist->last_sample_time));
    +}
    +
    static void print_hostname(struct feat_fd *ff, FILE *fp)
    {
    fprintf(fp, "# hostname : %s\n", ff->ph->env.hostname);
    @@ -1506,6 +1520,19 @@ static void print_group_desc(struct feat_fd *ff, FILE *fp)
    }
    }

    +static void print_sample_time(struct feat_fd *ff, FILE *fp)
    +{
    + struct perf_session *session;
    +
    + session = container_of(ff->ph, struct perf_session, header);
    +
    + fprintf(fp, "# time of first sample : %" PRIu64 "\n",
    + session->evlist->first_sample_time);
    +
    + fprintf(fp, "# time of last sample : %" PRIu64 "\n",
    + session->evlist->last_sample_time);

    this could be done in some follow up patch, but could we
    display this in some human readable way..

    # time of first sample : 218077073264620
    # time of last sample : 218077073395488

    jirka

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jin, Yao@21:1/5 to Jiri Olsa on Mon Oct 2 15:00:02 2017
    On 10/2/2017 7:50 PM, Jiri Olsa wrote:
    On Thu, Sep 28, 2017 at 08:45:16PM +0800, Jin Yao wrote:

    SNIP

    + return ret;
    +
    + return do_write(ff, &evlist->last_sample_time,
    + sizeof(evlist->last_sample_time));
    +}
    +
    static void print_hostname(struct feat_fd *ff, FILE *fp)
    {
    fprintf(fp, "# hostname : %s\n", ff->ph->env.hostname);
    @@ -1506,6 +1520,19 @@ static void print_group_desc(struct feat_fd *ff, FILE *fp)
    }
    }

    +static void print_sample_time(struct feat_fd *ff, FILE *fp)
    +{
    + struct perf_session *session;
    +
    + session = container_of(ff->ph, struct perf_session, header);
    +
    + fprintf(fp, "# time of first sample : %" PRIu64 "\n",
    + session->evlist->first_sample_time);
    +
    + fprintf(fp, "# time of last sample : %" PRIu64 "\n",
    + session->evlist->last_sample_time);

    this could be done in some follow up patch, but could we
    display this in some human readable way..

    # time of first sample : 218077073264620
    # time of last sample : 218077073395488

    jirka


    Could I add the printing of duration? For example,

    duration = (double)(last_sample_time - first_sample_time) / NSEC_PER_MSEC; fprintf(fp, "# sample duration: %10.3f (ms)\n", duration);

    fprintf(fp, "# time of first sample : %" PRIu64 "\n",
    first_sample_time);

    fprintf(fp, "# time of last sample : %" PRIu64 "\n",
    last_sample_time);

    Thanks
    Jin Yao

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jiri Olsa@21:1/5 to Yao on Mon Oct 2 15:10:02 2017
    On Mon, Oct 02, 2017 at 08:52:59PM +0800, Jin, Yao wrote:


    On 10/2/2017 7:50 PM, Jiri Olsa wrote:
    On Thu, Sep 28, 2017 at 08:45:16PM +0800, Jin Yao wrote:

    SNIP

    + return ret;
    +
    + return do_write(ff, &evlist->last_sample_time,
    + sizeof(evlist->last_sample_time));
    +}
    +
    static void print_hostname(struct feat_fd *ff, FILE *fp)
    {
    fprintf(fp, "# hostname : %s\n", ff->ph->env.hostname);
    @@ -1506,6 +1520,19 @@ static void print_group_desc(struct feat_fd *ff, FILE *fp)
    }
    }

    +static void print_sample_time(struct feat_fd *ff, FILE *fp)
    +{
    + struct perf_session *session;
    +
    + session = container_of(ff->ph, struct perf_session, header);
    +
    + fprintf(fp, "# time of first sample : %" PRIu64 "\n",
    + session->evlist->first_sample_time);
    +
    + fprintf(fp, "# time of last sample : %" PRIu64 "\n",
    + session->evlist->last_sample_time);

    this could be done in some follow up patch, but could we
    display this in some human readable way..

    # time of first sample : 218077073264620
    # time of last sample : 218077073395488

    jirka


    Could I add the printing of duration? For example,

    duration = (double)(last_sample_time - first_sample_time) / NSEC_PER_MSEC; fprintf(fp, "# sample duration: %10.3f (ms)\n", duration);

    fprintf(fp, "# time of first sample : %" PRIu64 "\n",
    first_sample_time);

    fprintf(fp, "# time of last sample : %" PRIu64 "\n",
    last_sample_time);

    could be, but mainly please display the time same way the perf script does:

    218482.819815

    jirka

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)