diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-05-17 14:03:05 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-05-17 15:03:34 -0400 |
commit | 9ac94e31ca8c6311ec9eb68aea513e39ad809013 (patch) | |
tree | 352e30a3305522b1744c6c333ae497e119b9fac8 /tools/perf/util/sort.c | |
parent | 6e1690c4c0b540930f08295b6a95c8660b257745 (diff) |
perf tools: Read the cache line size lazily
It is not read as commonly as 'page_size', so it makes sense to read it
lazily, caching its value when it is first read.
Less files open unconditionally at startup.
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: https://lkml.kernel.org/n/tip-35xhrq91u94uc1djtclek1ie@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/sort.c')
-rw-r--r-- | tools/perf/util/sort.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index e65903a695a6..4058ade352a5 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c | |||
@@ -2582,7 +2582,7 @@ int sort_dimension__add(struct perf_hpp_list *list, const char *tok, | |||
2582 | if (sort__mode != SORT_MODE__MEMORY) | 2582 | if (sort__mode != SORT_MODE__MEMORY) |
2583 | return -EINVAL; | 2583 | return -EINVAL; |
2584 | 2584 | ||
2585 | if (sd->entry == &sort_mem_dcacheline && cacheline_size == 0) | 2585 | if (sd->entry == &sort_mem_dcacheline && cacheline_size() == 0) |
2586 | return -EINVAL; | 2586 | return -EINVAL; |
2587 | 2587 | ||
2588 | if (sd->entry == &sort_mem_daddr_sym) | 2588 | if (sd->entry == &sort_mem_daddr_sym) |
@@ -2628,7 +2628,7 @@ static int setup_sort_list(struct perf_hpp_list *list, char *str, | |||
2628 | if (*tok) { | 2628 | if (*tok) { |
2629 | ret = sort_dimension__add(list, tok, evlist, level); | 2629 | ret = sort_dimension__add(list, tok, evlist, level); |
2630 | if (ret == -EINVAL) { | 2630 | if (ret == -EINVAL) { |
2631 | if (!cacheline_size && !strncasecmp(tok, "dcacheline", strlen(tok))) | 2631 | if (!cacheline_size() && !strncasecmp(tok, "dcacheline", strlen(tok))) |
2632 | pr_err("The \"dcacheline\" --sort key needs to know the cacheline size and it couldn't be determined on this system"); | 2632 | pr_err("The \"dcacheline\" --sort key needs to know the cacheline size and it couldn't be determined on this system"); |
2633 | else | 2633 | else |
2634 | pr_err("Invalid --sort key: `%s'", tok); | 2634 | pr_err("Invalid --sort key: `%s'", tok); |