kernel_optimize_test/tools/perf/tests
Arnaldo Carvalho de Melo 8b00f46951 perf tests: Fix map_groups refcount test
When introducing reference counting for struct thread instances I forgot
to remove the synthetic threads from the machine's rbtree so that it
then the threads would have just one reference and thus the
thread__put() replacing the thread__delete() really turns into a
thread__delete() (thread->refcnt == 1 at thread__put() time) and thus
drop the thread->mg refcount, as expected by the this test.

Fix it by calling machine__remove_thread() (the counterpart of
machine__findnew_thread()) on all the synthetic threads after the
checks that involves the rbtree were done.

Before:

  # perf test -v mg
  30: Test thread mg sharing                                 :
  --- start ---
  test child forked, pid 26995
  FAILED tests/thread-mg-share.c:68 wrong refcnt (4 != 3)
  test child finished with -1
  ---- end ----
  Test thread mg sharing: FAILED!
  #

After:

  # perf test mg
  30: Test thread mg sharing: Ok
  #

Fixes: b91fc39f4a ("perf machine: Protect the machine->threads with a rwlock")
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-uoqq0fjei90ohhhcboz6ay33@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-05-12 09:59:52 -03:00
..
attr perf tests: Fix attr tests 2015-04-08 10:49:53 -03:00
attr.c tools: Consolidate types.h 2014-05-01 21:22:39 +02:00
attr.py perf tools: Remove EOL whitespaces 2015-01-21 13:24:31 -03:00
bp_signal_overflow.c perf tools: Enable close-on-exec flag on perf file descriptor 2014-07-18 09:09:34 +02:00
bp_signal.c perf tools: Enable close-on-exec flag on perf file descriptor 2014-07-18 09:09:34 +02:00
Build perf tools: Add kmod_path__parse function 2015-03-21 14:53:41 -03:00
builtin-test.c perf tests: Fix to get negative exit codes 2015-05-12 09:59:50 -03:00
code-reading.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
dso-data.c perf tests: Do not rely on dso__data_read_offset() to open dso 2015-02-06 11:46:35 +01:00
dwarf-unwind.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
evsel-roundtrip-name.c perf tools: Add parse_events_error interface 2015-04-29 10:37:58 -03:00
evsel-tp-sched.c perf tools: Move pr_* debug macros into debug object 2014-07-17 12:58:39 -03:00
fdarray.c tools lib fd array: Allow associating an integer cookie with each entry 2014-09-25 16:46:55 -03:00
hists_common.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
hists_common.h perf tests: Define and use symbolic names for fake symbols 2014-06-01 14:35:11 +02:00
hists_cumulate.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
hists_filter.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
hists_link.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
hists_output.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
keep-tracking.c perf tools: Add parse_events_error interface 2015-04-29 10:37:58 -03:00
kmod-path.c perf tools: Add kmod_path__parse function 2015-03-21 14:53:41 -03:00
make perf tools: Add build option NO_AUXTRACE to exclude AUX area tracing 2015-05-05 18:12:53 -03:00
mmap-basic.c perf test: Use strerror_r instead of strerror 2014-08-15 13:07:28 -03:00
mmap-thread-lookup.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
open-syscall-all-cpus.c perf tools: Make perf aware of tracefs 2015-02-11 12:37:08 -03:00
open-syscall-tp-fields.c perf evlist: Introduce poll method for common code idiom 2014-09-25 16:46:55 -03:00
open-syscall.c perf tools: Make perf aware of tracefs 2015-02-11 12:37:08 -03:00
parse-events.c perf tools: Add parse_events_error interface 2015-04-29 10:37:58 -03:00
parse-no-sample-id-all.c perf tools: Move pr_* debug macros into debug object 2014-07-17 12:58:39 -03:00
perf-record.c perf evlist: Introduce poll method for common code idiom 2014-09-25 16:46:55 -03:00
perf-targz-src-pkg perf tools: Add test for building detached source tarballs 2014-01-13 10:06:26 -03:00
perf-time-to-tsc.c perf tools: Add parse_events_error interface 2015-04-29 10:37:58 -03:00
pmu.c perf tools: Add term support for parse_events_error 2015-04-29 10:38:01 -03:00
python-use.c perf tests: Check python path on attr and binding test 2013-01-24 16:40:10 -03:00
rdpmc.c perf test: Use strerror_r instead of strerror 2014-08-15 13:07:28 -03:00
sample-parsing.c perf tests: Fix typo in sample-parsing.c 2015-01-22 17:03:01 -03:00
sw-clock.c perf test: Use strerror_r instead of strerror 2014-08-15 13:07:28 -03:00
switch-tracking.c perf tools: Add parse_events_error interface 2015-04-29 10:37:58 -03:00
task-exit.c perf evlist: Introduce poll method for common code idiom 2014-09-25 16:46:55 -03:00
tests.h perf tests: Show refcounting broken expectations in thread-mg-share test 2015-05-12 09:59:51 -03:00
thread-mg-share.c perf tests: Fix map_groups refcount test 2015-05-12 09:59:52 -03:00
vmlinux-kallsyms.c perf tests: No need to set up ref_reloc_sym 2014-01-31 17:21:52 -03:00