]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - tools/perf/util/sort.c
perf tools: Compare dso's also when comparing symbols
[karo-tx-linux.git] / tools / perf / util / sort.c
index 32c56377e008e682e4e8f79f0558e0ce7279221f..1f9821db9e7719750d3d0d3304a42a262d3fda17 100644 (file)
@@ -182,9 +182,19 @@ static int64_t _sort__sym_cmp(struct symbol *sym_l, struct symbol *sym_r)
 static int64_t
 sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
 {
+       int64_t ret;
+
        if (!left->ms.sym && !right->ms.sym)
                return right->level - left->level;
 
+       /*
+        * comparing symbol address alone is not enough since it's a
+        * relative address within a dso.
+        */
+       ret = sort__dso_cmp(left, right);
+       if (ret != 0)
+               return ret;
+
        return _sort__sym_cmp(left->ms.sym, right->ms.sym);
 }