[PATCH v1 09/15] perf record: introduce thread specific objects for trace streaming

From: Alexey Budankov
Date: Mon Oct 12 2020 - 05:02:46 EST



Introduce thread local data object and its array to be used for
threaded trace streaming.

Signed-off-by: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx>
---
tools/perf/builtin-record.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index ba26d75c51d6..8e512096a060 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -85,11 +85,29 @@ struct switch_output {
int cur_file;
};

+struct thread_data {
+ pid_t tid;
+ struct {
+ int msg[2];
+ int ack[2];
+ } comm;
+ struct fdarray pollfd;
+ int ctlfd_pos;
+ struct mmap *maps;
+ int nr_mmaps;
+ struct record *rec;
+ unsigned long long samples;
+ unsigned long waking;
+ u64 bytes_written;
+};
+
struct record {
struct perf_tool tool;
struct record_opts opts;
u64 bytes_written;
struct perf_data data;
+ struct thread_data *thread_data;
+ int nr_thread_data;
struct auxtrace_record *itr;
struct evlist *evlist;
struct perf_session *session;
--
2.24.1