Port the period data column to centos6.7 for perf script

From: yuzhoujian
Date: Thu Sep 14 2017 - 22:38:21 EST


Hi, all.
I want to draw off-cpu flamegraph using perf script on centos6.7
(kernel version, 2.6.32-573), and I found perf script lacks the
period data column on that version. I found two related patches,
and modifed builin-script.c in reference to those patches.
perf script:Add period data column authorJiri Olsa 2014-08-25 16:45:42 +0200
commit535aeaae7de821ba5d43ee2a204ee667ca95aae4
perf script: Add period as a default output column
commite8564b710c6df2c3aeb56c507c22f4bcfa4c0b2d)


I used the new complied perf to record some hardware event, like cycles,
and the result displays the period data column. But when I record some
tracepoint events, like sched:sched_stat_sleep, sched:sched_switch, I
found the period data column is always 1. I checked the code(kernel/event/core.c),
and found that the data->period is assigned nr in the function named perf_swevent_event.
I tracked this function, and found the function call flow:
perf_trace_buf_submit--->perf_tp_event---->perf_swevent_event.

The function perf_trace_buf_submit is in the ftrace_event.h files, so the period data
column for tracepoint events is calulated in the frace subsystem? What is the real
meaning of the period field and how to calculate it ? Can you give me some tips for
poring this field on the old kernel?

Thanks,
Wind Yu.