Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 169533
b: refs/heads/master
c: af0a6fa
h: refs/heads/master
i:
  169531: 8766bd1
v: v3
  • Loading branch information
Frederic Weisbecker authored and Ingo Molnar committed Oct 23, 2009
1 parent 57d6c35 commit cf0d7a9
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4e3b799d7dbb2a12ca8dca8d3594d32095772973
refs/heads/master: af0a6fa46388e1e0c2d1a672aad84f8f6ef0b20b
40 changes: 33 additions & 7 deletions trunk/tools/perf/builtin-report.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ static void init_rem_hits(void)
}

static size_t
callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
u64 total_samples, int depth, int depth_mask)
__callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
u64 total_samples, int depth, int depth_mask)
{
struct rb_node *node, *next;
struct callchain_node *child;
Expand Down Expand Up @@ -174,9 +174,9 @@ callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
new_total,
cumul);
}
ret += callchain__fprintf_graph(fp, child, new_total,
depth + 1,
new_depth_mask | (1 << depth));
ret += __callchain__fprintf_graph(fp, child, new_total,
depth + 1,
new_depth_mask | (1 << depth));
node = next;
}

Expand All @@ -196,6 +196,33 @@ callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
return ret;
}

static size_t
callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
u64 total_samples)
{
struct callchain_list *chain;
int i = 0;
int ret = 0;

list_for_each_entry(chain, &self->val, list) {
if (chain->ip >= PERF_CONTEXT_MAX)
continue;

if (!i++ && sort_by_sym_first)
continue;

if (chain->sym)
ret += fprintf(fp, " %s\n", chain->sym->name);
else
ret += fprintf(fp, " %p\n",
(void *)(long)chain->ip);
}

ret += __callchain__fprintf_graph(fp, self, total_samples, 1, 1);

return ret;
}

static size_t
callchain__fprintf_flat(FILE *fp, struct callchain_node *self,
u64 total_samples)
Expand Down Expand Up @@ -244,8 +271,7 @@ hist_entry_callchain__fprintf(FILE *fp, struct hist_entry *self,
break;
case CHAIN_GRAPH_ABS: /* Falldown */
case CHAIN_GRAPH_REL:
ret += callchain__fprintf_graph(fp, chain,
total_samples, 1, 1);
ret += callchain__fprintf_graph(fp, chain, total_samples);
case CHAIN_NONE:
default:
break;
Expand Down
10 changes: 7 additions & 3 deletions trunk/tools/perf/util/sort.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ char default_parent_pattern[] = "^sys_|^do_page_fault";
char *parent_pattern = default_parent_pattern;
char default_sort_order[] = "comm,dso,symbol";
char *sort_order = default_sort_order;
int sort__need_collapse = 0;
int sort__has_parent = 0;
int sort__need_collapse = 0;
int sort__has_parent = 0;
int sort_by_sym_first;

unsigned int dsos__col_width;
unsigned int comms__col_width;
Expand Down Expand Up @@ -265,6 +266,10 @@ int sort_dimension__add(const char *tok)
sort__has_parent = 1;
}

if (list_empty(&hist_entry__sort_list) &&
!strcmp(sd->name, "symbol"))
sort_by_sym_first = true;

list_add_tail(&sd->entry->list, &hist_entry__sort_list);
sd->taken = 1;

Expand All @@ -273,4 +278,3 @@ int sort_dimension__add(const char *tok)

return -ESRCH;
}

1 change: 1 addition & 0 deletions trunk/tools/perf/util/sort.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ extern struct sort_entry sort_parent;
extern unsigned int dsos__col_width;
extern unsigned int comms__col_width;
extern unsigned int threads__col_width;
extern int sort_by_sym_first;

struct hist_entry {
struct rb_node rb_node;
Expand Down

0 comments on commit cf0d7a9

Please sign in to comment.