OSDN Git Service

perf symbols: Convert symbol__is_idle() to use strlist
authorKim Phillips <kim.phillips@amd.com>
Mon, 10 Feb 2020 16:31:47 +0000 (10:31 -0600)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 10 Feb 2020 19:30:51 +0000 (16:30 -0300)
Use the more optimized strlist implementation to do the idle function
lookup.

Signed-off-by: Kim Phillips <kim.phillips@amd.com>
Acked-by: Song Liu <songliubraving@fb.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20200210163147.25358-1-kim.phillips@amd.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/symbol.c

index f3120c4..1077013 100644 (file)
@@ -654,13 +654,17 @@ static bool symbol__is_idle(const char *name)
                NULL
        };
        int i;
+       static struct strlist *idle_symbols_list;
 
-       for (i = 0; idle_symbols[i]; i++) {
-               if (!strcmp(idle_symbols[i], name))
-                       return true;
-       }
+       if (idle_symbols_list)
+               return strlist__has_entry(idle_symbols_list, name);
 
-       return false;
+       idle_symbols_list = strlist__new(NULL, NULL);
+
+       for (i = 0; idle_symbols[i]; i++)
+               strlist__add(idle_symbols_list, idle_symbols[i]);
+
+       return strlist__has_entry(idle_symbols_list, name);
 }
 
 static int map__process_kallsym_symbol(void *arg, const char *name,