perf symbols: Consider unresolved DSOs in the dso__col_widt calculation
authorArnaldo Carvalho de Melo <acme@redhat.com>
Sun, 9 May 2010 19:07:01 +0000 (16:07 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Sun, 9 May 2010 21:32:32 +0000 (18:32 -0300)
By using BITS_PER_LONG / 4, that is the number of chars that will be
used in such cases as the DSO "name".

Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/event.c

index 23d5dfd4ed7398d11cf08396bd46a499699b7b11..46563e16c3f50f5f3e39509abc471a522d4cfd55 100644 (file)
@@ -676,6 +676,13 @@ int event__preprocess_sample(const event_t *self, struct perf_session *session,
                        dso__calc_col_width(al->map->dso);
 
                al->sym = map__find_symbol(al->map, al->addr, filter);
+       } else {
+               const unsigned int unresolved_col_width = BITS_PER_LONG / 4;
+
+               if (dsos__col_width < unresolved_col_width &&
+                   !symbol_conf.col_width_list_str && !symbol_conf.field_sep &&
+                   !symbol_conf.dso_list)
+                       dsos__col_width = unresolved_col_width;
        }
 
        if (symbol_conf.sym_list && al->sym &&