mirror of https://gitee.com/openkylin/linux.git
perf tests: Don't tail call optimize in unwind test
The tail call optimization can unexpectedly make the stack smaller and cause the test to fail. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: clang-built-linux@googlegroups.com Cc: Jakub Kicinski <kuba@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Quentin Monnet <quentin@isovalent.com> Cc: Stephane Eranian <eranian@google.com> Link: http://lore.kernel.org/lkml/20200530082015.39162-3-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
21f2b7c133
commit
8617e2e34f
|
@ -94,7 +94,7 @@ static int unwind_entry(struct unwind_entry *entry, void *arg)
|
|||
return strcmp((const char *) symbol, funcs[idx]);
|
||||
}
|
||||
|
||||
noinline int test_dwarf_unwind__thread(struct thread *thread)
|
||||
__no_tail_call noinline int test_dwarf_unwind__thread(struct thread *thread)
|
||||
{
|
||||
struct perf_sample sample;
|
||||
unsigned long cnt = 0;
|
||||
|
@ -125,7 +125,7 @@ noinline int test_dwarf_unwind__thread(struct thread *thread)
|
|||
|
||||
static int global_unwind_retval = -INT_MAX;
|
||||
|
||||
noinline int test_dwarf_unwind__compare(void *p1, void *p2)
|
||||
__no_tail_call noinline int test_dwarf_unwind__compare(void *p1, void *p2)
|
||||
{
|
||||
/* Any possible value should be 'thread' */
|
||||
struct thread *thread = *(struct thread **)p1;
|
||||
|
@ -144,7 +144,7 @@ noinline int test_dwarf_unwind__compare(void *p1, void *p2)
|
|||
return p1 - p2;
|
||||
}
|
||||
|
||||
noinline int test_dwarf_unwind__krava_3(struct thread *thread)
|
||||
__no_tail_call noinline int test_dwarf_unwind__krava_3(struct thread *thread)
|
||||
{
|
||||
struct thread *array[2] = {thread, thread};
|
||||
void *fp = &bsearch;
|
||||
|
@ -163,12 +163,12 @@ noinline int test_dwarf_unwind__krava_3(struct thread *thread)
|
|||
return global_unwind_retval;
|
||||
}
|
||||
|
||||
noinline int test_dwarf_unwind__krava_2(struct thread *thread)
|
||||
__no_tail_call noinline int test_dwarf_unwind__krava_2(struct thread *thread)
|
||||
{
|
||||
return test_dwarf_unwind__krava_3(thread);
|
||||
}
|
||||
|
||||
noinline int test_dwarf_unwind__krava_1(struct thread *thread)
|
||||
__no_tail_call noinline int test_dwarf_unwind__krava_1(struct thread *thread)
|
||||
{
|
||||
return test_dwarf_unwind__krava_2(thread);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue