Re: [PATCH v2] perf test: Fix false TEST_OK result for 'perf test hist'

From: Namhyung Kim
Date: Tue Dec 15 2015 - 04:04:21 EST


On Tue, Dec 15, 2015 at 08:09:26AM +0000, Wang Nan wrote:
> Commit 71d6de64feddd4b455555326fba2111b3006d9e0 ('perf test: Fix hist
> testcases when kptr_restrict is on') solves a double free problem when
> 'perf test hist' calling setup_fake_machine(). However, the result is
> still incorrect. For example:
>
> $ ./perf test -v 'filtering hist entries'
> 25: Test filtering hist entries :
> --- start ---
> test child forked, pid 4186
> Cannot create kernel maps
> test child finished with 0
> ---- end ----
> Test filtering hist entries: Ok
>
> In this case the body of this test is not get executed at all, but the
> result is 'Ok'.
>
> Actually, in setup_fake_machine() there's no need to create real kernel
> maps. What we want is the fake maps. This patch removes the
> machine__create_kernel_maps() in setup_fake_machine(), so it won't be
> affected by kptr_restrict setting.
>
> Test result:
>
> $ cat /proc/sys/kernel/kptr_restrict
> 1
> $ ~/perf test -v hist
> 15: Test matching and linking multiple hists :
> --- start ---
> test child forked, pid 24031
> test child finished with 0
> ---- end ----
> Test matching and linking multiple hists: Ok
> [SNIP]
>
> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Suggested-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>

Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Thanks,
Namhyung


> ---
> tools/perf/tests/hists_common.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/tools/perf/tests/hists_common.c b/tools/perf/tests/hists_common.c
> index bcfd081..071a8b5 100644
> --- a/tools/perf/tests/hists_common.c
> +++ b/tools/perf/tests/hists_common.c
> @@ -87,11 +87,6 @@ struct machine *setup_fake_machine(struct machines *machines)
> return NULL;
> }
>
> - if (machine__create_kernel_maps(machine)) {
> - pr_debug("Cannot create kernel maps\n");
> - return NULL;
> - }
> -
> for (i = 0; i < ARRAY_SIZE(fake_threads); i++) {
> struct thread *thread;
>
> --
> 1.8.3.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/