Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -224,20 +224,24 @@ static unsigned int annotate_browser__refresh(struct ui_browser *browser)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int disasm__cmp(struct annotation_line *a, struct annotation_line *b)
|
||||
static double disasm__cmp(struct annotation_line *a, struct annotation_line *b,
|
||||
int percent_type)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < a->data_nr; i++) {
|
||||
if (a->data[i].percent == b->data[i].percent)
|
||||
if (a->data[i].percent[percent_type] == b->data[i].percent[percent_type])
|
||||
continue;
|
||||
return a->data[i].percent < b->data[i].percent;
|
||||
return a->data[i].percent[percent_type] -
|
||||
b->data[i].percent[percent_type];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void disasm_rb_tree__insert(struct rb_root *root, struct annotation_line *al)
|
||||
static void disasm_rb_tree__insert(struct annotate_browser *browser,
|
||||
struct annotation_line *al)
|
||||
{
|
||||
struct rb_root *root = &browser->entries;
|
||||
struct rb_node **p = &root->rb_node;
|
||||
struct rb_node *parent = NULL;
|
||||
struct annotation_line *l;
|
||||
@@ -246,7 +250,7 @@ static void disasm_rb_tree__insert(struct rb_root *root, struct annotation_line
|
||||
parent = *p;
|
||||
l = rb_entry(parent, struct annotation_line, rb_node);
|
||||
|
||||
if (disasm__cmp(al, l))
|
||||
if (disasm__cmp(al, l, browser->opts->percent_type) < 0)
|
||||
p = &(*p)->rb_left;
|
||||
else
|
||||
p = &(*p)->rb_right;
|
||||
@@ -329,7 +333,7 @@ static void annotate_browser__calc_percent(struct annotate_browser *browser,
|
||||
RB_CLEAR_NODE(&pos->al.rb_node);
|
||||
continue;
|
||||
}
|
||||
disasm_rb_tree__insert(&browser->entries, &pos->al);
|
||||
disasm_rb_tree__insert(browser, &pos->al);
|
||||
}
|
||||
pthread_mutex_unlock(¬es->lock);
|
||||
|
||||
|
Reference in New Issue
Block a user