perf lock contention: Factor out lock_type_table
authorNamhyung Kim <namhyung@kernel.org>
Mon, 19 Dec 2022 20:17:27 +0000 (12:17 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 20 Dec 2022 18:18:29 +0000 (15:18 -0300)
Move it out of get_type_str() so that we can reuse the table for others
later.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Blake Jones <blakejones@google.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <song@kernel.org>
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20221219201732.460111-2-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-lock.c

index 6276dfbc94a1f90eb0577d3ddde65438ef6106d9..311f83bc5ddb8cb0a3261c9e410e9e543060f1e9 100644 (file)
@@ -1437,30 +1437,30 @@ static void sort_result(void)
        }
 }
 
-static const char *get_type_str(struct lock_stat *st)
-{
-       static const struct {
-               unsigned int flags;
-               const char *name;
-       } table[] = {
-               { 0,                            "semaphore" },
-               { LCB_F_SPIN,                   "spinlock" },
-               { LCB_F_SPIN | LCB_F_READ,      "rwlock:R" },
-               { LCB_F_SPIN | LCB_F_WRITE,     "rwlock:W"},
-               { LCB_F_READ,                   "rwsem:R" },
-               { LCB_F_WRITE,                  "rwsem:W" },
-               { LCB_F_RT,                     "rtmutex" },
-               { LCB_F_RT | LCB_F_READ,        "rwlock-rt:R" },
-               { LCB_F_RT | LCB_F_WRITE,       "rwlock-rt:W"},
-               { LCB_F_PERCPU | LCB_F_READ,    "pcpu-sem:R" },
-               { LCB_F_PERCPU | LCB_F_WRITE,   "pcpu-sem:W" },
-               { LCB_F_MUTEX,                  "mutex" },
-               { LCB_F_MUTEX | LCB_F_SPIN,     "mutex" },
-       };
+static const struct {
+       unsigned int flags;
+       const char *name;
+} lock_type_table[] = {
+       { 0,                            "semaphore" },
+       { LCB_F_SPIN,                   "spinlock" },
+       { LCB_F_SPIN | LCB_F_READ,      "rwlock:R" },
+       { LCB_F_SPIN | LCB_F_WRITE,     "rwlock:W"},
+       { LCB_F_READ,                   "rwsem:R" },
+       { LCB_F_WRITE,                  "rwsem:W" },
+       { LCB_F_RT,                     "rtmutex" },
+       { LCB_F_RT | LCB_F_READ,        "rwlock-rt:R" },
+       { LCB_F_RT | LCB_F_WRITE,       "rwlock-rt:W"},
+       { LCB_F_PERCPU | LCB_F_READ,    "pcpu-sem:R" },
+       { LCB_F_PERCPU | LCB_F_WRITE,   "pcpu-sem:W" },
+       { LCB_F_MUTEX,                  "mutex" },
+       { LCB_F_MUTEX | LCB_F_SPIN,     "mutex" },
+};
 
-       for (unsigned int i = 0; i < ARRAY_SIZE(table); i++) {
-               if (table[i].flags == st->flags)
-                       return table[i].name;
+static const char *get_type_str(unsigned int flags)
+{
+       for (unsigned int i = 0; i < ARRAY_SIZE(lock_type_table); i++) {
+               if (lock_type_table[i].flags == flags)
+                       return lock_type_table[i].name;
        }
        return "unknown";
 }
@@ -1514,7 +1514,7 @@ static void print_contention_result(struct lock_contention *con)
 
                switch (aggr_mode) {
                case LOCK_AGGR_CALLER:
-                       pr_info("  %10s   %s\n", get_type_str(st), st->name);
+                       pr_info("  %10s   %s\n", get_type_str(st->flags), st->name);
                        break;
                case LOCK_AGGR_TASK:
                        pid = st->addr;