From: Namhyung Kim <namhyung....@lge.com>

It's used for determining current sort mode which can be one of
NORMAL, BRANCH and new MEMORY.

Cc: Stephane Eranian <eran...@google.com>
Signed-off-by: Namhyung Kim <namhy...@kernel.org>
---
 tools/perf/builtin-report.c    | 23 +++++++++++++----------
 tools/perf/ui/browsers/hists.c |  4 ++--
 tools/perf/util/sort.c         |  4 ++--
 tools/perf/util/sort.h         |  8 +++++++-
 4 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index d9f2de3e81fe..c877982a64d3 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -311,7 +311,7 @@ static int process_sample_event(struct perf_tool *tool,
        if (rep->cpu_list && !test_bit(sample->cpu, rep->cpu_bitmap))
                return 0;
 
-       if (sort__branch_mode == 1) {
+       if (sort__mode == SORT_MODE__BRANCH) {
                if (perf_report__add_branch_hist_entry(tool, &al, sample,
                                                       evsel, machine)) {
                        pr_debug("problem adding lbr entry, skipping event\n");
@@ -387,7 +387,7 @@ static int perf_report__setup_sample_type(struct 
perf_report *rep)
                        }
        }
 
-       if (sort__branch_mode == 1) {
+       if (sort__mode == SORT_MODE__BRANCH) {
                if (!self->fd_pipe &&
                    !(sample_type & PERF_SAMPLE_BRANCH_STACK)) {
                        ui__error("Selected -b but no branch data. "
@@ -694,7 +694,9 @@ static int
 parse_branch_mode(const struct option *opt __maybe_unused,
                  const char *str __maybe_unused, int unset)
 {
-       sort__branch_mode = !unset;
+       int *branch_mode = opt->value;
+
+       *branch_mode = !unset;
        return 0;
 }
 
@@ -703,6 +705,7 @@ int cmd_report(int argc, const char **argv, const char 
*prefix __maybe_unused)
        struct perf_session *session;
        struct stat st;
        bool has_br_stack = false;
+       int branch_mode = -1;
        int ret = -1;
        char callchain_default_opt[] = "fractal,0.5,callee";
        const char * const report_usage[] = {
@@ -799,7 +802,7 @@ int cmd_report(int argc, const char **argv, const char 
*prefix __maybe_unused)
                    "Show a column with the sum of periods"),
        OPT_BOOLEAN(0, "group", &symbol_conf.event_group,
                    "Show event group information together"),
-       OPT_CALLBACK_NOOPT('b', "branch-stack", &sort__branch_mode, "",
+       OPT_CALLBACK_NOOPT('b', "branch-stack", &branch_mode, "",
                    "use branch records for histogram filling", 
parse_branch_mode),
        OPT_STRING(0, "objdump", &objdump_path, "path",
                   "objdump binary to use for disassembly and annotations"),
@@ -849,11 +852,11 @@ repeat:
        has_br_stack = perf_header__has_feat(&session->header,
                                             HEADER_BRANCH_STACK);
 
-       if (sort__branch_mode == -1 && has_br_stack)
-               sort__branch_mode = 1;
+       if (branch_mode == -1 && has_br_stack)
+               sort__mode = SORT_MODE__BRANCH;
 
-       /* sort__branch_mode could be 0 if --no-branch-stack */
-       if (sort__branch_mode == 1) {
+       /* sort__mode could be NORMAL if --no-branch-stack */
+       if (sort__mode == SORT_MODE__BRANCH) {
                /*
                 * if no sort_order is provided, then specify
                 * branch-mode specific order
@@ -864,7 +867,7 @@ repeat:
 
        }
        if (report.mem_mode) {
-               if (sort__branch_mode == 1) {
+               if (sort__mode == SORT_MODE__BRANCH) {
                        fprintf(stderr, "branch and mem mode incompatible\n");
                        goto error;
                }
@@ -934,7 +937,7 @@ repeat:
 
        sort_entry__setup_elide(&sort_comm, symbol_conf.comm_list, "comm", 
stdout);
 
-       if (sort__branch_mode == 1) {
+       if (sort__mode == SORT_MODE__BRANCH) {
                sort_entry__setup_elide(&sort_dso_from, 
symbol_conf.dso_from_list, "dso_from", stdout);
                sort_entry__setup_elide(&sort_dso_to, symbol_conf.dso_to_list, 
"dso_to", stdout);
                sort_entry__setup_elide(&sort_sym_from, 
symbol_conf.sym_from_list, "sym_from", stdout);
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 0cada654d387..cea7ef969cbc 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -1155,7 +1155,7 @@ static struct hist_browser *hist_browser__new(struct 
hists *hists)
                browser->b.refresh = hist_browser__refresh;
                browser->b.seek = ui_browser__hists_seek;
                browser->b.use_navkeypressed = true;
-               if (sort__branch_mode == 1)
+               if (sort__mode == SORT_MODE__BRANCH)
                        browser->has_symbols = sort_sym_from.list.next != NULL;
                else
                        browser->has_symbols = sort_sym.list.next != NULL;
@@ -1487,7 +1487,7 @@ static int perf_evsel__hists_browse(struct perf_evsel 
*evsel, int nr_events,
                if (!browser->has_symbols)
                        goto add_exit_option;
 
-               if (sort__branch_mode == 1) {
+               if (sort__mode == SORT_MODE__BRANCH) {
                        bi = browser->he_selection->branch_info;
                        if (browser->selection != NULL &&
                            bi &&
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 16d5e38befe5..a6ddad41d57a 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -9,7 +9,7 @@ const char      *sort_order = default_sort_order;
 int            sort__need_collapse = 0;
 int            sort__has_parent = 0;
 int            sort__has_sym = 0;
-int            sort__branch_mode = -1; /* -1 = means not set */
+enum sort_mode sort__mode = SORT_MODE__NORMAL;
 
 enum sort_type sort__first_dimension;
 
@@ -943,7 +943,7 @@ int sort_dimension__add(const char *tok)
                if (strncasecmp(tok, sd->name, strlen(tok)))
                        continue;
 
-               if (sort__branch_mode != 1)
+               if (sort__mode != SORT_MODE__BRANCH)
                        return -EINVAL;
 
                if (sd->entry == &sort_sym_from || sd->entry == &sort_sym_to)
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
index f24bdf64238c..39ff4b86ae84 100644
--- a/tools/perf/util/sort.h
+++ b/tools/perf/util/sort.h
@@ -32,7 +32,7 @@ extern const char default_sort_order[];
 extern int sort__need_collapse;
 extern int sort__has_parent;
 extern int sort__has_sym;
-extern int sort__branch_mode;
+extern enum sort_mode sort__mode;
 extern struct sort_entry sort_comm;
 extern struct sort_entry sort_dso;
 extern struct sort_entry sort_sym;
@@ -123,6 +123,12 @@ static inline void hist_entry__add_pair(struct hist_entry 
*he,
        list_add_tail(&he->pairs.head, &pair->pairs.node);
 }
 
+enum sort_mode {
+       SORT_MODE__NORMAL,
+       SORT_MODE__BRANCH,
+       SORT_MODE__MEMORY,
+};
+
 enum sort_type {
        /* common sort keys */
        SORT_PID,
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to