From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, Wang Nan <wangnan0@huawei.com>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
Zefan Li <lizefan@huawei.com>,
pi3orama@163.com, Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 9/9] perf tools: Clear struct machine during machine__init()
Date: Fri, 11 Dec 2015 11:22:32 -0300 [thread overview]
Message-ID: <1449843752-28395-10-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1449843752-28395-1-git-send-email-acme@kernel.org>
From: Wang Nan <wangnan0@huawei.com>
There are so many test cases use stack allocated 'struct machine'.
Including:
test__hists_link
test__hists_filter
test__mmap_thread_lookup
test__thread_mg_share
test__hists_output
test__hists_cumulate
Also, in non-test code (for example, machine__new_host()) there are
code use 'malloc()' to alloc struct machine.
These are dangerous operations, cause some tests fail or hung in
machines__exit(). For example, in
machines__exit ->
machine__destroy_kernel_maps ->
map_groups__remove ->
maps__remove ->
pthread_rwlock_wrlock
a incorrectly initialized lock causes unintended behavior.
This patch memset(0) that structure in machine__init() to ensure all
fields in 'struct machine' are initialized to zero.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1449541544-67621-17-git-send-email-wangnan0@huawei.com
[ Use memset, see 'man bzero' ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/machine.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index f5882b8c8db9..1407d5107480 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -25,6 +25,7 @@ static void dsos__init(struct dsos *dsos)
int machine__init(struct machine *machine, const char *root_dir, pid_t pid)
{
+ memset(machine, 0, sizeof(*machine));
map_groups__init(&machine->kmaps, machine);
RB_CLEAR_NODE(&machine->rb_node);
dsos__init(&machine->dsos);
--
2.1.0
next prev parent reply other threads:[~2015-12-11 14:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-11 14:22 [GIT PULL 0/9] perf/core improvements and fixes Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 1/9] perf top: Do not convert address for perf_top__record_precise_ip() Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 2/9] perf top: Access hists->lock only if needed Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 3/9] perf top: Fix annotation on --stdio Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 4/9] perf top: Cleanup condition in perf_top__record_precise_ip() Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 5/9] tools lib bpf: Check return value of strdup when reading map names Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 6/9] tools lib bpf: Fetch map names from correct strtab Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 7/9] perf data: Add u32_hex data type Arnaldo Carvalho de Melo
2015-12-11 14:22 ` [PATCH 8/9] perf script: Add support for PERF_TYPE_BREAKPOINT Arnaldo Carvalho de Melo
2015-12-11 14:22 ` Arnaldo Carvalho de Melo [this message]
2015-12-14 8:32 ` [GIT PULL 0/9] perf/core improvements and fixes Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1449843752-28395-10-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=pi3orama@163.com \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.