Re: [PATCH 07/19] perf top: Use new idle_sym check

Arnaldo Carvalho de Melo
2013-08-08T15:06:55Z

Em Wed, Aug 07, 2013 at 10:50:49PM -0400, David Ahern escreveu:
> Avoids strcmp processing each sample.

How so? This is done just when loading a DSO, when then each symbol is
checked against this list.

Tangentially, Frédéric, wasn't there a patchset from you that marks the
context of idle samples, in perf_event_header->misc, additiotally to
PERF_RECORD_MISC_KERNEL, etc? I think there were some for IRQ context as
well, right?

- Arnaldo

> Signed-off-by: David Ahern <dsahern@gmail.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Stephane Eranian <eranian@google.com>
> ---
> tools/perf/builtin-top.c | 25 ++-----------------------
> 1 file changed, 2 insertions(+), 23 deletions(-)
>
> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
> index 440c3b3..8eb0e3a 100644
> --- a/tools/perf/builtin-top.c
> +++ b/tools/perf/builtin-top.c
> @@ -634,26 +634,9 @@ repeat:
> return NULL;
> }
>
> -/* Tag samples to be skipped. */
> -static const char *skip_symbols[] = {
> - "intel_idle",
> - "default_idle",
> - "native_safe_halt",
> - "cpu_idle",
> - "enter_idle",
> - "exit_idle",
> - "mwait_idle",
> - "mwait_idle_with_hints",
> - "poll_idle",
> - "ppc64_runlatch_off",
> - "pseries_dedicated_idle_sleep",
> - NULL
> -};
> -
> static int symbol_filter(struct map *map __maybe_unused, struct symbol *sym)
> {
> const char *name = sym->name;
> - int i;
>
> /*
> * ppc64 uses function descriptors and appends a '.' to the
> @@ -671,12 +654,8 @@ static int symbol_filter(struct map *map __maybe_unused, struct symbol *sym)
> strstr(name, "_text_end"))
> return 1;
>
> - for (i = 0; skip_symbols[i]; i++) {
> - if (!strcmp(skip_symbols[i], name)) {
> - sym->ignore = true;
> - break;
> - }
> - }
> + if (symbol__is_idle(sym))
> + sym->ignore = true;
>
> return 0;
> }
> --
> 1.7.10.1