From: Alexei Budankov <budankov.lore@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>,
Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Andi Kleen <ak@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
budankov.lore@gmail.com
Subject: Re: [PATCH v2 14/15] perf record: start threads in the beginning of trace streaming
Date: Mon, 26 Oct 2020 11:39:43 +0300 [thread overview]
Message-ID: <18730616-8e60-70df-9624-d1fbc0a0893e@gmail.com> (raw)
In-Reply-To: <20201024154416.GF2589351@krava>
On 24.10.2020 18:44, Jiri Olsa wrote:
> On Wed, Oct 21, 2020 at 07:10:09PM +0300, Alexey Budankov wrote:
>>
>> Start threads in detached state because its management is possible
>> via messaging. Block signals prior the threads start so only main
>> tool thread would be notified on external async signals during data
>> collection. Streaming threads connect one-to-one to mapped data
>> buffers and write into per-CPU trace files located at data directory.
>> Data buffers and threads are affined to local NUMA nodes and monitored
>> CPUs according to system topology. --cpu option can be used to specify
>> CPUs to be monitored.
>>
>> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
>> ---
>> tools/perf/builtin-record.c | 128 +++++++++++++++++++++++++++++++++---
>> 1 file changed, 120 insertions(+), 8 deletions(-)
>>
>> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
>> index a15642656066..1d41e996a994 100644
>> --- a/tools/perf/builtin-record.c
>> +++ b/tools/perf/builtin-record.c
>> @@ -56,6 +56,7 @@
>> #include <poll.h>
>> #include <pthread.h>
>> #include <unistd.h>
>> +#include <sys/syscall.h>
>> #include <sched.h>
>> #include <signal.h>
>> #ifdef HAVE_EVENTFD_SUPPORT
>> @@ -1377,6 +1378,62 @@ static void record__thread_munmap_filtered(struct fdarray *fda, int fd,
>> perf_mmap__put(map);
>> }
>>
>> +static void *record__thread(void *arg)
>> +{
>> + enum thread_msg msg = THREAD_MSG__READY;
>> + bool terminate = false;
>> + struct fdarray *pollfd;
>> + int err, ctlfd_pos;
>> +
>> + thread = arg;
>> + thread->tid = syscall(SYS_gettid);
>> +
>> + err = write(thread->comm.ack[1], &msg, sizeof(msg));
>> + if (err == -1)
>> + pr_err("threads: %d failed to notify on start. Error %m", thread->tid);
>> +
>> + pollfd = &(thread->pollfd);
>
> I don't think braces are necessary in here
Corrected in v3.
Alexei
next prev parent reply other threads:[~2020-10-26 8:39 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-21 15:52 [PATCH v2 00/15] Introduce threaded trace streaming for basic perf record operation Alexey Budankov
2020-10-21 15:56 ` [PATCH v2 01/15] perf session: introduce trace file path to be shown in raw trace dump Alexey Budankov
2020-10-22 4:28 ` Namhyung Kim
2020-10-21 15:57 ` [PATCH v2 02/15] perf report: output trace file name " Alexey Budankov
2020-10-22 4:29 ` Namhyung Kim
2020-10-21 15:57 ` [PATCH v2 03/15] perf data: open data directory in read access mode Alexey Budankov
2020-10-22 4:31 ` Namhyung Kim
2020-10-22 7:50 ` Alexey Budankov
2020-10-24 15:43 ` Jiri Olsa
2020-10-26 17:47 ` Alexey Budankov
2020-10-27 11:59 ` Jiri Olsa
2020-10-27 14:44 ` Alexey Budankov
2020-10-21 15:59 ` [PATCH v2 04/15] perf session: move reader object definition to header file Alexey Budankov
2020-10-22 4:31 ` Namhyung Kim
2020-10-24 15:44 ` Jiri Olsa
2020-10-26 17:50 ` Alexey Budankov
2020-10-21 16:00 ` [PATCH v2 05/15] perf session: introduce decompressor into trace reader object Alexey Budankov
2020-10-22 4:36 ` Namhyung Kim
2020-10-22 7:20 ` Alexey Budankov
2020-10-24 15:44 ` Jiri Olsa
2020-10-26 8:54 ` Alexei Budankov
2020-10-21 16:01 ` [PATCH v2 06/15] perf session: load data directory into tool process memory Alexey Budankov
2020-10-24 15:43 ` Jiri Olsa
2020-10-27 7:37 ` Alexey Budankov
2020-10-27 12:21 ` Jiri Olsa
2020-10-27 14:43 ` Alexey Budankov
2020-10-28 7:22 ` Namhyung Kim
2020-10-28 15:39 ` Jiri Olsa
2020-10-29 11:00 ` Namhyung Kim
2020-10-28 15:36 ` Jiri Olsa
2020-10-27 15:04 ` Alexey Budankov
2020-10-21 16:01 ` [PATCH v2 07/15] perf record: introduce trace file, compressor and stats in mmap object Alexey Budankov
2020-10-21 16:02 ` [PATCH v2 08/15] perf record: write trace data into mmap trace files Alexey Budankov
2020-10-24 15:44 ` Jiri Olsa
2020-10-26 8:52 ` Alexei Budankov
2020-10-26 10:32 ` Jiri Olsa
2020-10-26 14:04 ` Alexei Budankov
2020-10-21 16:03 ` [PATCH v2 09/15] perf record: introduce thread specific objects for trace streaming Alexey Budankov
2020-10-24 15:44 ` Jiri Olsa
2020-10-26 8:53 ` Alexei Budankov
2020-10-21 16:04 ` [PATCH v2 10/15] perf record: manage thread specific data array Alexey Budankov
2020-10-24 15:44 ` Jiri Olsa
2020-10-26 8:39 ` Alexei Budankov
2020-10-21 16:06 ` [PATCH v2 11/15] perf evlist: introduce evlist__ctlfd_update() to update ctl fd status Alexey Budankov
2020-10-21 16:07 ` [PATCH v2 12/15] perf record: introduce thread local variable for trace streaming Alexey Budankov
2020-10-24 15:43 ` Jiri Olsa
2020-10-26 8:21 ` Alexei Budankov
2020-10-26 10:34 ` Jiri Olsa
2020-10-26 14:11 ` Alexei Budankov
2020-10-27 12:01 ` Jiri Olsa
2020-10-27 14:16 ` Alexey Budankov
2020-10-27 15:58 ` Alexey Budankov
2020-10-21 16:08 ` [PATCH v2 13/15] perf record: stop threads in the end of " Alexey Budankov
2020-10-21 16:10 ` [PATCH v2 14/15] perf record: start threads in the beginning " Alexey Budankov
2020-10-24 15:44 ` Jiri Olsa
2020-10-26 8:39 ` Alexei Budankov [this message]
2020-10-21 16:10 ` [PATCH v2 15/15] perf record: introduce --threads command line option Alexey Budankov
2020-10-24 15:43 ` [PATCH v2 00/15] Introduce threaded trace streaming for basic perf record operation Jiri Olsa
2020-10-26 17:59 ` Alexey Budankov
2020-10-27 12:10 ` Jiri Olsa
2020-10-27 14:26 ` Alexey Budankov
2020-10-27 16:01 ` Alexey Budankov
2020-10-28 7:08 ` Namhyung Kim
[not found] ` <b6150d2f-04a6-9204-59ac-c31c8697c630@linux.intel.com>
2020-10-28 15:32 ` Jiri Olsa
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=18730616-8e60-70df-9624-d1fbc0a0893e@gmail.com \
--to=budankov.lore@gmail.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=alexey.budankov@linux.intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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
Powered by JetHome