|
@@ -454,12 +454,12 @@ static int test3(struct perf_evsel *evsel, struct machine *machine)
|
|
|
* 30.00% 10.00% perf perf [.] cmd_record
|
|
|
* 20.00% 0.00% bash libc [.] malloc
|
|
|
* 10.00% 10.00% bash [kernel] [k] page_fault
|
|
|
- * 10.00% 10.00% perf [kernel] [k] schedule
|
|
|
- * 10.00% 0.00% perf [kernel] [k] sys_perf_event_open
|
|
|
+ * 10.00% 10.00% bash bash [.] xmalloc
|
|
|
* 10.00% 10.00% perf [kernel] [k] page_fault
|
|
|
- * 10.00% 10.00% perf libc [.] free
|
|
|
* 10.00% 10.00% perf libc [.] malloc
|
|
|
- * 10.00% 10.00% bash bash [.] xmalloc
|
|
|
+ * 10.00% 10.00% perf [kernel] [k] schedule
|
|
|
+ * 10.00% 10.00% perf libc [.] free
|
|
|
+ * 10.00% 0.00% perf [kernel] [k] sys_perf_event_open
|
|
|
*/
|
|
|
struct result expected[] = {
|
|
|
{ 7000, 2000, "perf", "perf", "main" },
|
|
@@ -468,12 +468,12 @@ static int test3(struct perf_evsel *evsel, struct machine *machine)
|
|
|
{ 3000, 1000, "perf", "perf", "cmd_record" },
|
|
|
{ 2000, 0, "bash", "libc", "malloc" },
|
|
|
{ 1000, 1000, "bash", "[kernel]", "page_fault" },
|
|
|
- { 1000, 1000, "perf", "[kernel]", "schedule" },
|
|
|
- { 1000, 0, "perf", "[kernel]", "sys_perf_event_open" },
|
|
|
+ { 1000, 1000, "bash", "bash", "xmalloc" },
|
|
|
{ 1000, 1000, "perf", "[kernel]", "page_fault" },
|
|
|
+ { 1000, 1000, "perf", "[kernel]", "schedule" },
|
|
|
{ 1000, 1000, "perf", "libc", "free" },
|
|
|
{ 1000, 1000, "perf", "libc", "malloc" },
|
|
|
- { 1000, 1000, "bash", "bash", "xmalloc" },
|
|
|
+ { 1000, 0, "perf", "[kernel]", "sys_perf_event_open" },
|
|
|
};
|
|
|
|
|
|
symbol_conf.use_callchain = false;
|
|
@@ -537,10 +537,13 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
* malloc
|
|
|
* main
|
|
|
*
|
|
|
- * 10.00% 10.00% perf [kernel] [k] schedule
|
|
|
+ * 10.00% 10.00% bash bash [.] xmalloc
|
|
|
* |
|
|
|
- * --- schedule
|
|
|
- * run_command
|
|
|
+ * --- xmalloc
|
|
|
+ * malloc
|
|
|
+ * xmalloc <--- NOTE: there's a cycle
|
|
|
+ * malloc
|
|
|
+ * xmalloc
|
|
|
* main
|
|
|
*
|
|
|
* 10.00% 0.00% perf [kernel] [k] sys_perf_event_open
|
|
@@ -556,6 +559,12 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
* run_command
|
|
|
* main
|
|
|
*
|
|
|
+ * 10.00% 10.00% perf [kernel] [k] schedule
|
|
|
+ * |
|
|
|
+ * --- schedule
|
|
|
+ * run_command
|
|
|
+ * main
|
|
|
+ *
|
|
|
* 10.00% 10.00% perf libc [.] free
|
|
|
* |
|
|
|
* --- free
|
|
@@ -570,15 +579,6 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
* run_command
|
|
|
* main
|
|
|
*
|
|
|
- * 10.00% 10.00% bash bash [.] xmalloc
|
|
|
- * |
|
|
|
- * --- xmalloc
|
|
|
- * malloc
|
|
|
- * xmalloc <--- NOTE: there's a cycle
|
|
|
- * malloc
|
|
|
- * xmalloc
|
|
|
- * main
|
|
|
- *
|
|
|
*/
|
|
|
struct result expected[] = {
|
|
|
{ 7000, 2000, "perf", "perf", "main" },
|
|
@@ -587,12 +587,12 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
{ 3000, 1000, "perf", "perf", "cmd_record" },
|
|
|
{ 2000, 0, "bash", "libc", "malloc" },
|
|
|
{ 1000, 1000, "bash", "[kernel]", "page_fault" },
|
|
|
- { 1000, 1000, "perf", "[kernel]", "schedule" },
|
|
|
+ { 1000, 1000, "bash", "bash", "xmalloc" },
|
|
|
{ 1000, 0, "perf", "[kernel]", "sys_perf_event_open" },
|
|
|
{ 1000, 1000, "perf", "[kernel]", "page_fault" },
|
|
|
+ { 1000, 1000, "perf", "[kernel]", "schedule" },
|
|
|
{ 1000, 1000, "perf", "libc", "free" },
|
|
|
{ 1000, 1000, "perf", "libc", "malloc" },
|
|
|
- { 1000, 1000, "bash", "bash", "xmalloc" },
|
|
|
};
|
|
|
struct callchain_result expected_callchain[] = {
|
|
|
{
|
|
@@ -622,9 +622,12 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
{ "bash", "main" }, },
|
|
|
},
|
|
|
{
|
|
|
- 3, { { "[kernel]", "schedule" },
|
|
|
- { "perf", "run_command" },
|
|
|
- { "perf", "main" }, },
|
|
|
+ 6, { { "bash", "xmalloc" },
|
|
|
+ { "libc", "malloc" },
|
|
|
+ { "bash", "xmalloc" },
|
|
|
+ { "libc", "malloc" },
|
|
|
+ { "bash", "xmalloc" },
|
|
|
+ { "bash", "main" }, },
|
|
|
},
|
|
|
{
|
|
|
3, { { "[kernel]", "sys_perf_event_open" },
|
|
@@ -637,6 +640,11 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
{ "perf", "run_command" },
|
|
|
{ "perf", "main" }, },
|
|
|
},
|
|
|
+ {
|
|
|
+ 3, { { "[kernel]", "schedule" },
|
|
|
+ { "perf", "run_command" },
|
|
|
+ { "perf", "main" }, },
|
|
|
+ },
|
|
|
{
|
|
|
4, { { "libc", "free" },
|
|
|
{ "perf", "cmd_record" },
|
|
@@ -649,14 +657,6 @@ static int test4(struct perf_evsel *evsel, struct machine *machine)
|
|
|
{ "perf", "run_command" },
|
|
|
{ "perf", "main" }, },
|
|
|
},
|
|
|
- {
|
|
|
- 6, { { "bash", "xmalloc" },
|
|
|
- { "libc", "malloc" },
|
|
|
- { "bash", "xmalloc" },
|
|
|
- { "libc", "malloc" },
|
|
|
- { "bash", "xmalloc" },
|
|
|
- { "bash", "main" }, },
|
|
|
- },
|
|
|
};
|
|
|
|
|
|
symbol_conf.use_callchain = true;
|