perf test: Fix false TEST_OK result for 'perf test hist'
authorWang Nan <wangnan0@huawei.com>
Mon, 11 Jan 2016 13:48:02 +0000 (13:48 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 11 Jan 2016 22:22:22 +0000 (19:22 -0300)
Commit 71d6de64fedd ("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 are 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]

Suggested-and-Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1452520124-2073-12-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/hists_common.c

index bcfd081ee1d2210acd722f1706660ee549ba10e6..071a8b5f5232fa394d4baa88a611f48e3ef2687d 100644 (file)
@@ -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;