Messages in this thread Patch in this message | | | From | Jin Yao <> | Subject | [PATCH v1 4/6] perf util: Create function to perform multiple time range checking | Date | Wed, 20 Sep 2017 23:12:35 +0800 |
| |
Previous patch supports the multiple time range.
For example, select the first and second 10% time slices. perf report --time 10%/1,10%/2
We need a function to check if a timestamp is in the ranges of [0, 10%) and [10%, 20%).
This patch implments a new function perf_time__ranges_skip_sample.
Signed-off-by: Jin Yao <yao.jin@linux.intel.com> --- tools/perf/util/time-utils.c | 21 +++++++++++++++++++++ tools/perf/util/time-utils.h | 3 +++ 2 files changed, 24 insertions(+)
diff --git a/tools/perf/util/time-utils.c b/tools/perf/util/time-utils.c index d46490f..d1f5121 100644 --- a/tools/perf/util/time-utils.c +++ b/tools/perf/util/time-utils.c @@ -297,6 +297,27 @@ bool perf_time__skip_sample(struct perf_time_interval *ptime, u64 timestamp) return false; } +bool perf_time__ranges_skip_sample(struct perf_time_interval *ptime_buf, + int num, u64 timestamp) +{ + struct perf_time_interval *ptime; + int i; + + if ((timestamp == 0) || (num == 0)) + return false; + + for (i = 0; i < num; i++) { + ptime = &ptime_buf[i]; + + if ((timestamp >= ptime->start) && + (timestamp < ptime->end)) { + break; + } + } + + return (i == num) ? true : false; +} + int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz) { u64 sec = timestamp / NSEC_PER_SEC; diff --git a/tools/perf/util/time-utils.h b/tools/perf/util/time-utils.h index fd018e2..de279ea 100644 --- a/tools/perf/util/time-utils.h +++ b/tools/perf/util/time-utils.h @@ -17,6 +17,9 @@ int perf_time__percent_parse_str(struct perf_time_interval *ptime_buf, int num, bool perf_time__skip_sample(struct perf_time_interval *ptime, u64 timestamp); +bool perf_time__ranges_skip_sample(struct perf_time_interval *ptime_buf, + int num, u64 timestamp); + int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz); int fetch_current_timestamp(char *buf, size_t sz); -- 2.7.4
| |