perf tests: Rename thread-mg-share to thread-maps-share
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 26 Nov 2019 01:29:18 +0000 (22:29 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 26 Nov 2019 14:07:46 +0000 (11:07 -0300)
One more step in merging 'struct maps' with 'struct map_groups'.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-naxsl3g4ou3fyxb8l8e0pn5e@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/Build
tools/perf/tests/builtin-test.c
tools/perf/tests/tests.h
tools/perf/tests/thread-maps-share.c [new file with mode: 0644]
tools/perf/tests/thread-mg-share.c [deleted file]

index e72accefd669b1669886e46ceffe1638fe9e841a..5b9b0a8139161e8526b7723f21257d521e64b00f 100644 (file)
@@ -27,7 +27,7 @@ perf-y += wp.o
 perf-y += task-exit.o
 perf-y += sw-clock.o
 perf-y += mmap-thread-lookup.o
-perf-y += thread-mg-share.o
+perf-y += thread-maps-share.o
 perf-y += switch-tracking.o
 perf-y += keep-tracking.o
 perf-y += code-reading.o
index 8b286e9b75495602afcdd2160333cb3a0ca6b499..3a4b9837b54d074c99005fe9cf61801bc1ad61df 100644 (file)
@@ -166,8 +166,8 @@ static struct test generic_tests[] = {
                .func = test__mmap_thread_lookup,
        },
        {
-               .desc = "Share thread mg",
-               .func = test__thread_mg_share,
+               .desc = "Share thread maps",
+               .func = test__thread_maps_share,
        },
        {
                .desc = "Sort output of hist entries",
index 9837b6e930238307f3bcc0644e83edd0c732e94d..f2b9bb0247463e2c4e45472f9869df5718a762fa 100644 (file)
@@ -73,7 +73,7 @@ int test__dwarf_unwind(struct test *test, int subtest);
 int test__expr(struct test *test, int subtest);
 int test__hists_filter(struct test *test, int subtest);
 int test__mmap_thread_lookup(struct test *test, int subtest);
-int test__thread_mg_share(struct test *test, int subtest);
+int test__thread_maps_share(struct test *test, int subtest);
 int test__hists_output(struct test *test, int subtest);
 int test__hists_cumulate(struct test *test, int subtest);
 int test__switch_tracking(struct test *test, int subtest);
diff --git a/tools/perf/tests/thread-maps-share.c b/tools/perf/tests/thread-maps-share.c
new file mode 100644 (file)
index 0000000..9371484
--- /dev/null
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "tests.h"
+#include "machine.h"
+#include "thread.h"
+#include "debug.h"
+
+int test__thread_maps_share(struct test *test __maybe_unused, int subtest __maybe_unused)
+{
+       struct machines machines;
+       struct machine *machine;
+
+       /* thread group */
+       struct thread *leader;
+       struct thread *t1, *t2, *t3;
+       struct maps *maps;
+
+       /* other process */
+       struct thread *other, *other_leader;
+       struct maps *other_maps;
+
+       /*
+        * This test create 2 processes abstractions (struct thread)
+        * with several threads and checks they properly share and
+        * maintain maps info (struct maps).
+        *
+        * thread group (pid: 0, tids: 0, 1, 2, 3)
+        * other  group (pid: 4, tids: 4, 5)
+       */
+
+       machines__init(&machines);
+       machine = &machines.host;
+
+       /* create process with 4 threads */
+       leader = machine__findnew_thread(machine, 0, 0);
+       t1     = machine__findnew_thread(machine, 0, 1);
+       t2     = machine__findnew_thread(machine, 0, 2);
+       t3     = machine__findnew_thread(machine, 0, 3);
+
+       /* and create 1 separated process, without thread leader */
+       other  = machine__findnew_thread(machine, 4, 5);
+
+       TEST_ASSERT_VAL("failed to create threads",
+                       leader && t1 && t2 && t3 && other);
+
+       maps = leader->maps;
+       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 4);
+
+       /* test the maps pointer is shared */
+       TEST_ASSERT_VAL("maps don't match", maps == t1->maps);
+       TEST_ASSERT_VAL("maps don't match", maps == t2->maps);
+       TEST_ASSERT_VAL("maps don't match", maps == t3->maps);
+
+       /*
+        * Verify the other leader was created by previous call.
+        * It should have shared maps with no change in
+        * refcnt.
+        */
+       other_leader = machine__find_thread(machine, 4, 4);
+       TEST_ASSERT_VAL("failed to find other leader", other_leader);
+
+       /*
+        * Ok, now that all the rbtree related operations were done,
+        * lets remove all of them from there so that we can do the
+        * refcounting tests.
+        */
+       machine__remove_thread(machine, leader);
+       machine__remove_thread(machine, t1);
+       machine__remove_thread(machine, t2);
+       machine__remove_thread(machine, t3);
+       machine__remove_thread(machine, other);
+       machine__remove_thread(machine, other_leader);
+
+       other_maps = other->maps;
+       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&other_maps->refcnt), 2);
+
+       TEST_ASSERT_VAL("maps don't match", other_maps == other_leader->maps);
+
+       /* release thread group */
+       thread__put(leader);
+       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 3);
+
+       thread__put(t1);
+       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 2);
+
+       thread__put(t2);
+       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 1);
+
+       thread__put(t3);
+
+       /* release other group  */
+       thread__put(other_leader);
+       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&other_maps->refcnt), 1);
+
+       thread__put(other);
+
+       machines__exit(&machines);
+       return 0;
+}
diff --git a/tools/perf/tests/thread-mg-share.c b/tools/perf/tests/thread-mg-share.c
deleted file mode 100644 (file)
index e3b0d69..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "tests.h"
-#include "machine.h"
-#include "thread.h"
-#include "debug.h"
-
-int test__thread_mg_share(struct test *test __maybe_unused, int subtest __maybe_unused)
-{
-       struct machines machines;
-       struct machine *machine;
-
-       /* thread group */
-       struct thread *leader;
-       struct thread *t1, *t2, *t3;
-       struct maps *maps;
-
-       /* other process */
-       struct thread *other, *other_leader;
-       struct maps *other_mg;
-
-       /*
-        * This test create 2 processes abstractions (struct thread)
-        * with several threads and checks they properly share and
-        * maintain maps info (struct maps).
-        *
-        * thread group (pid: 0, tids: 0, 1, 2, 3)
-        * other  group (pid: 4, tids: 4, 5)
-       */
-
-       machines__init(&machines);
-       machine = &machines.host;
-
-       /* create process with 4 threads */
-       leader = machine__findnew_thread(machine, 0, 0);
-       t1     = machine__findnew_thread(machine, 0, 1);
-       t2     = machine__findnew_thread(machine, 0, 2);
-       t3     = machine__findnew_thread(machine, 0, 3);
-
-       /* and create 1 separated process, without thread leader */
-       other  = machine__findnew_thread(machine, 4, 5);
-
-       TEST_ASSERT_VAL("failed to create threads",
-                       leader && t1 && t2 && t3 && other);
-
-       maps = leader->maps;
-       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 4);
-
-       /* test the map groups pointer is shared */
-       TEST_ASSERT_VAL("map groups don't match", maps == t1->maps);
-       TEST_ASSERT_VAL("map groups don't match", maps == t2->maps);
-       TEST_ASSERT_VAL("map groups don't match", maps == t3->maps);
-
-       /*
-        * Verify the other leader was created by previous call.
-        * It should have shared map groups with no change in
-        * refcnt.
-        */
-       other_leader = machine__find_thread(machine, 4, 4);
-       TEST_ASSERT_VAL("failed to find other leader", other_leader);
-
-       /*
-        * Ok, now that all the rbtree related operations were done,
-        * lets remove all of them from there so that we can do the
-        * refcounting tests.
-        */
-       machine__remove_thread(machine, leader);
-       machine__remove_thread(machine, t1);
-       machine__remove_thread(machine, t2);
-       machine__remove_thread(machine, t3);
-       machine__remove_thread(machine, other);
-       machine__remove_thread(machine, other_leader);
-
-       other_mg = other->maps;
-       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&other_mg->refcnt), 2);
-
-       TEST_ASSERT_VAL("map groups don't match", other_mg == other_leader->maps);
-
-       /* release thread group */
-       thread__put(leader);
-       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 3);
-
-       thread__put(t1);
-       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 2);
-
-       thread__put(t2);
-       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&maps->refcnt), 1);
-
-       thread__put(t3);
-
-       /* release other group  */
-       thread__put(other_leader);
-       TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&other_mg->refcnt), 1);
-
-       thread__put(other);
-
-       machines__exit(&machines);
-       return 0;
-}