forked from Minki/linux
perf tests: Add a test for the ARM 32-bit [vectors] page
perf on ARM requires CONFIG_KUSER_HELPERS to be turned on to allow some independance with respect to the ARM CPU being used. Add a test which tries to locate the [vectors] page, created when CONFIG_KUSER_HELPERS is turned on to help asses the system's health. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Chris Healy <cphealy@gmail.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Kim Phillips <kim.phillips@arm.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com> Cc: Russell King <rmk+kernel@armlinux.org.uk> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Thomas Richter <tmricht@linux.ibm.com> Link: http://lkml.kernel.org/r/20181221034337.26663-3-f.fainelli@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
011532379b
commit
21327c7843
@ -1,4 +1,5 @@
|
||||
libperf-y += regs_load.o
|
||||
libperf-y += dwarf-unwind.o
|
||||
libperf-y += vectors-page.o
|
||||
|
||||
libperf-y += arch-tests.o
|
||||
|
@ -10,6 +10,10 @@ struct test arch_tests[] = {
|
||||
.func = test__dwarf_unwind,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.desc = "Vectors page",
|
||||
.func = test__vectors_page,
|
||||
},
|
||||
{
|
||||
.func = NULL,
|
||||
},
|
||||
|
24
tools/perf/arch/arm/tests/vectors-page.c
Normal file
24
tools/perf/arch/arm/tests/vectors-page.c
Normal file
@ -0,0 +1,24 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
#include "debug.h"
|
||||
#include "tests/tests.h"
|
||||
#include "util/find-map.c"
|
||||
|
||||
#define VECTORS__MAP_NAME "[vectors]"
|
||||
|
||||
int test__vectors_page(struct test *test __maybe_unused,
|
||||
int subtest __maybe_unused)
|
||||
{
|
||||
void *start, *end;
|
||||
|
||||
if (find_map(&start, &end, VECTORS__MAP_NAME)) {
|
||||
pr_err("%s not found, is CONFIG_KUSER_HELPERS enabled?\n",
|
||||
VECTORS__MAP_NAME);
|
||||
return TEST_FAIL;
|
||||
}
|
||||
|
||||
return TEST_OK;
|
||||
}
|
@ -119,4 +119,9 @@ int test__arch_unwind_sample(struct perf_sample *sample,
|
||||
struct thread *thread);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__arm__)
|
||||
int test__vectors_page(struct test *test, int subtest);
|
||||
#endif
|
||||
|
||||
#endif /* TESTS_H */
|
||||
|
Loading…
Reference in New Issue
Block a user