From: Arnaldo Carvalho de Melo <acme@infradead.org>
To: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
Cc: Ingo Molnar <mingo@elte.hu>, Avi Kivity <avi@redhat.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
linux-kernel@vger.kernel.org, Sheng Yang <sheng@linux.intel.com>,
Joerg Roedel <joro@8bytes.org>,
Jes Sorensen <Jes.Sorensen@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Gleb Natapov <gleb@redhat.com>,
kvm@vger.kernel.org, zhiteng.huang@intel.com,
Zachary Amsden <zamsden@redhat.com>
Subject: Re: [PATCH 3/3] perf events: Change perf parameter --pid to process-wide collection instead of thread-wide
Date: Thu, 18 Mar 2010 10:35:48 -0300 [thread overview]
Message-ID: <20100318133548.GA2873@ghostprotocols.net> (raw)
In-Reply-To: <1268904666.2813.172.camel@localhost>
Em Thu, Mar 18, 2010 at 05:31:06PM +0800, Zhang, Yanmin escreveu:
> From: Zhang, Yanmin <yanmin_zhang@linux.intel.com>
>
> Parameter --pid (or -p) of perf currently means a thread-wide collection.
> For exmaple, if a process whose id is 8888 has 10 threads, 'perf top -p 8888'
> just collects the main thread statistics. That's misleading. Users are
> used to attach a whole process when debugging a process by gdb. To follow
> normal usage style, the patch change --pid to process-wide collection and
> add --tid (-t) to mean a thread-wide collection.
>
> Usage example is:
> #perf top -p 8888
> #perf record -p 8888 -f sleep 10
> #perf stat -p 8888 -f sleep 10
> Above commands collect the statistics of all threads of process 8888.
>
> Signed-off-by: Zhang Yanmin <yanmin_zhang@linux.intel.com>
Just did visual inspection of the three patches, all sane, except for
some coding style nits, don't worry right now for that, I'll fix them up
myself, but please take those into account int the future, highlight
below.
> ---
>
> diff -Nraup linux-2.6_tip0317_statrecord/tools/perf/builtin-record.c linux-2.6_tip0317_statrecordpid/tools/perf/builtin-record.c
> --- linux-2.6_tip0317_statrecord/tools/perf/builtin-record.c 2010-03-18 13:48:39.578181540 +0800
> +++ linux-2.6_tip0317_statrecordpid/tools/perf/builtin-record.c 2010-03-18 14:28:41.449631936 +0800
> + mmap_array[nr_cpu][counter][thread_index].mask = mmap_pages*page_size - 1;
> + mmap_array[nr_cpu][counter][thread_index].base = mmap(NULL, (mmap_pages+1)*page_size,
Spaces around +, *, etc
> + PROT_READ|PROT_WRITE, MAP_SHARED, fd[nr_cpu][counter][thread_index], 0);
> + if (mmap_array[nr_cpu][counter][thread_index].base == MAP_FAILED) {
> + error("failed to mmap with %d (%s)\n", errno, strerror(errno));
> + exit(-1);
> + }
> + } else {
> + all_tids=malloc(sizeof(pid_t));
Ditto here for =
> + if (!all_tids)
> + return -ENOMEM;
> +
> + all_tids[0] = target_tid;
> + thread_num = 1;
> + }
> +
> + for (i = 0; i < MAX_NR_CPUS; i++) {
> + for (j = 0; j < MAX_COUNTERS; j++) {
> + fd[i][j] = malloc(sizeof(int)*thread_num);
> + mmap_array[i][j] = malloc(
> + sizeof(struct mmap_data)*thread_num);
Ditto
> + if (!fd[i][j] || !mmap_array[i][j])
> + return -ENOMEM;
> + }
> + }
> + event_array = malloc(
> + sizeof(struct pollfd)*MAX_NR_CPUS*MAX_COUNTERS*thread_num);
Ditto
Should be, I suggest:
event_array = malloc((sizeof(struct pollfd) * MAX_NR_CPUS *
MAX_COUNTERS * thread_num));
Anyway, I'll fix some of these while merging, now.
- Arnaldo
next prev parent reply other threads:[~2010-03-18 13:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-18 9:31 [PATCH 3/3] perf events: Change perf parameter --pid to process-wide collection instead of thread-wide Zhang, Yanmin
2010-03-18 13:35 ` Arnaldo Carvalho de Melo [this message]
2010-03-18 14:40 ` Arnaldo Carvalho de Melo
2010-03-25 8:02 ` Li Zefan
2010-03-25 8:47 ` Zhang, Yanmin
2010-03-25 8:56 ` Li Zefan
2010-03-25 14:13 ` Arnaldo Carvalho de Melo
-- strict thread matches above, loose matches on Subject: below --
2010-03-18 14:36 [PATCH 1/3] perf stat: Enable counters when collecting process-wide or system-wide data Arnaldo Carvalho de Melo
2010-03-18 14:36 ` [PATCH 3/3] perf events: Change perf parameter --pid to process-wide collection instead of thread-wide Arnaldo Carvalho de Melo
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=20100318133548.GA2873@ghostprotocols.net \
--to=acme@infradead.org \
--cc=Jes.Sorensen@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mtosatti@redhat.com \
--cc=sheng@linux.intel.com \
--cc=yanmin_zhang@linux.intel.com \
--cc=zamsden@redhat.com \
--cc=zhiteng.huang@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox