Commit 58db1d6e7d5d24afa2d32e916fd6f6b6d240ba93

Authored by Arnaldo Carvalho de Melo
1 parent 9607ad3a63

perf tools: Move units conversion/formatting routines to separate object

Out of util.h, to disentangle it a bit more.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-vpksyj3w5fk9t8s6mxmkajyr@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Showing 11 changed files with 56 additions and 39 deletions Side-by-side Diff

tools/perf/builtin-record.c
... ... @@ -38,6 +38,7 @@
38 38 #include "util/bpf-loader.h"
39 39 #include "util/trigger.h"
40 40 #include "util/perf-hooks.h"
  41 +#include "util/units.h"
41 42 #include "asm/bug.h"
42 43  
43 44 #include <errno.h>
tools/perf/builtin-report.c
... ... @@ -37,6 +37,7 @@
37 37 #include "arch/common.h"
38 38 #include "util/time-utils.h"
39 39 #include "util/auxtrace.h"
  40 +#include "util/units.h"
40 41  
41 42 #include <dlfcn.h>
42 43 #include <errno.h>
tools/perf/tests/unit_number__scnprintf.c
... ... @@ -2,7 +2,7 @@
2 2 #include <linux/compiler.h>
3 3 #include <linux/types.h>
4 4 #include "tests.h"
5   -#include "util.h"
  5 +#include "units.h"
6 6 #include "debug.h"
7 7  
8 8 int test__unit_number__scnprint(int subtest __maybe_unused)
tools/perf/ui/browsers/hists.c
... ... @@ -24,6 +24,7 @@
24 24 #include "annotate.h"
25 25 #include "srcline.h"
26 26 #include "string2.h"
  27 +#include "units.h"
27 28  
28 29 #include "sane_ctype.h"
29 30  
tools/perf/util/Build
... ... @@ -89,6 +89,7 @@
89 89 libperf-y += mem-events.o
90 90 libperf-y += vsprintf.o
91 91 libperf-y += drv_configs.o
  92 +libperf-y += units.o
92 93 libperf-y += time-utils.o
93 94 libperf-y += expr-bison.o
94 95  
tools/perf/util/evlist.c
... ... @@ -17,6 +17,7 @@
17 17 #include "evlist.h"
18 18 #include "evsel.h"
19 19 #include "debug.h"
  20 +#include "units.h"
20 21 #include "asm/bug.h"
21 22 #include <signal.h>
22 23 #include <unistd.h>
tools/perf/util/python-ext-sources
... ... @@ -27,4 +27,5 @@
27 27 ../lib/rbtree.c
28 28 util/string.c
29 29 util/symbol_fprintf.c
  30 +util/units.c
tools/perf/util/units.c
  1 +#include "units.h"
  2 +#include <inttypes.h>
  3 +#include <linux/kernel.h>
  4 +#include <linux/time64.h>
  5 +
  6 +unsigned long convert_unit(unsigned long value, char *unit)
  7 +{
  8 + *unit = ' ';
  9 +
  10 + if (value > 1000) {
  11 + value /= 1000;
  12 + *unit = 'K';
  13 + }
  14 +
  15 + if (value > 1000) {
  16 + value /= 1000;
  17 + *unit = 'M';
  18 + }
  19 +
  20 + if (value > 1000) {
  21 + value /= 1000;
  22 + *unit = 'G';
  23 + }
  24 +
  25 + return value;
  26 +}
  27 +
  28 +int unit_number__scnprintf(char *buf, size_t size, u64 n)
  29 +{
  30 + char unit[4] = "BKMG";
  31 + int i = 0;
  32 +
  33 + while (((n / 1024) > 1) && (i < 3)) {
  34 + n /= 1024;
  35 + i++;
  36 + }
  37 +
  38 + return scnprintf(buf, size, "%" PRIu64 "%c", n, unit[i]);
  39 +}
tools/perf/util/units.h
  1 +#ifndef PERF_UNIT_H
  2 +#define PERF_UNIT_H
  3 +
  4 +#include <stddef.h>
  5 +#include <linux/types.h>
  6 +
  7 +unsigned long convert_unit(unsigned long value, char *unit);
  8 +int unit_number__scnprintf(char *buf, size_t size, u64 n);
  9 +
  10 +#endif /* PERF_UNIT_H */
tools/perf/util/util.c
... ... @@ -272,28 +272,6 @@
272 272 return copyfile_mode(from, to, 0755);
273 273 }
274 274  
275   -unsigned long convert_unit(unsigned long value, char *unit)
276   -{
277   - *unit = ' ';
278   -
279   - if (value > 1000) {
280   - value /= 1000;
281   - *unit = 'K';
282   - }
283   -
284   - if (value > 1000) {
285   - value /= 1000;
286   - *unit = 'M';
287   - }
288   -
289   - if (value > 1000) {
290   - value /= 1000;
291   - *unit = 'G';
292   - }
293   -
294   - return value;
295   -}
296   -
297 275 static ssize_t ion(bool is_read, int fd, void *buf, size_t n)
298 276 {
299 277 void *buf_start = buf;
... ... @@ -730,18 +708,5 @@
730 708 scnprintf(buf, sz, "%s%02u", dt, (unsigned)tv.tv_usec / 10000);
731 709  
732 710 return 0;
733   -}
734   -
735   -int unit_number__scnprintf(char *buf, size_t size, u64 n)
736   -{
737   - char unit[4] = "BKMG";
738   - int i = 0;
739   -
740   - while (((n / 1024) > 1) && (i < 3)) {
741   - n /= 1024;
742   - i++;
743   - }
744   -
745   - return scnprintf(buf, size, "%" PRIu64 "%c", n, unit[i]);
746 711 }
tools/perf/util/util.h
... ... @@ -73,7 +73,6 @@
73 73 int copyfile_mode(const char *from, const char *to, mode_t mode);
74 74 int copyfile_offset(int fromfd, loff_t from_ofs, int tofd, loff_t to_ofs, u64 size);
75 75  
76   -unsigned long convert_unit(unsigned long value, char *unit);
77 76 ssize_t readn(int fd, void *buf, size_t n);
78 77 ssize_t writen(int fd, void *buf, size_t n);
79 78  
... ... @@ -133,8 +132,6 @@
133 132 #endif
134 133  
135 134 int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz);
136   -
137   -int unit_number__scnprintf(char *buf, size_t size, u64 n);
138 135  
139 136 #endif /* GIT_COMPAT_UTIL_H */