Re: [PATCH 06/11] perf kvm: limit repetitive guestmount message toonce per directory

From: Arnaldo Carvalho de Melo
Date: Mon Jul 23 2012 - 14:11:19 EST


Em Fri, Jul 20, 2012 at 05:25:51PM -0600, David Ahern escreveu:
> After 7ed97ad use of the guestmount option without a subdir for *each*
> VM generates an error message for each sample related to that VM. Once
> per VM is enough.
>
> Signed-off-by: David Ahern <dsahern@xxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> ---
> tools/perf/util/map.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
> index 16d783d..cc33486 100644
> --- a/tools/perf/util/map.c
> +++ b/tools/perf/util/map.c
> @@ -8,6 +8,7 @@
> #include <unistd.h>
> #include "map.h"
> #include "thread.h"
> +#include "strlist.h"
>
> const char *map_type__name[MAP__NR_TYPES] = {
> [MAP__FUNCTION] = "Functions",
> @@ -695,7 +696,15 @@ struct machine *machines__findnew(struct rb_root *self, pid_t pid)
> (symbol_conf.guestmount)) {
> sprintf(path, "%s/%d", symbol_conf.guestmount, pid);
> if (access(path, R_OK)) {
> - pr_err("Can't access file %s\n", path);
> + static struct strlist *seen;
> +
> + if (!seen)
> + seen = strlist__new(true, NULL);
> +
> + if (!strlist__has_entry(seen, path)) {
> + pr_err("Can't access file %s\n", path);
> + strlist__add(seen, path);
> + }

At some point we'll need to have __exit functions in userland perf so
that we can delete this when using mem leak detectors :-\ Applying
anyway.

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