@@ -65,9 +65,14 @@ static void perf_fmt_prepare(const char *event_name,
int line, const struct repository *repo,
uint64_t *p_us_elapsed_absolute,
uint64_t *p_us_elapsed_relative,
- const char *category, struct strbuf *buf)
+ const char *category, struct strbuf *buf,
+ const char *thread_name_override)
{
int len;
+ const char *thread_name =
+ ((thread_name_override && *thread_name_override)
+ ? thread_name_override
+ : ctx->thread_name);
strbuf_setlen(buf, 0);
@@ -107,7 +112,7 @@ static void perf_fmt_prepare(const char *event_name,
strbuf_addf(buf, "d%d | ", tr2_sid_depth());
strbuf_addf(buf, "%-*.*s | %-*s | ", TR2FMT_PERF_MAX_THREAD_NAME,
- TR2FMT_PERF_MAX_THREAD_NAME, ctx->thread_name,
+ TR2FMT_PERF_MAX_THREAD_NAME, thread_name,
TR2FMT_PERF_MAX_EVENT_NAME, event_name);
len = buf->len + TR2FMT_PERF_REPO_WIDTH;
@@ -141,14 +146,15 @@ static void perf_io_write_fl(const char *file, int line, const char *event_name,
uint64_t *p_us_elapsed_absolute,
uint64_t *p_us_elapsed_relative,
const char *category,
- const struct strbuf *buf_payload)
+ const struct strbuf *buf_payload,
+ const char *thread_name_override)
{
struct tr2tls_thread_ctx *ctx = tr2tls_get_self();
struct strbuf buf_line = STRBUF_INIT;
perf_fmt_prepare(event_name, ctx, file, line, repo,
p_us_elapsed_absolute, p_us_elapsed_relative, category,
- &buf_line);
+ &buf_line, thread_name_override);
strbuf_addbuf(&buf_line, buf_payload);
tr2_dst_write_line(&tr2dst_perf, &buf_line);
strbuf_release(&buf_line);
@@ -162,7 +168,7 @@ static void fn_version_fl(const char *file, int line)
strbuf_addstr(&buf_payload, git_version_string);
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -175,7 +181,7 @@ static void fn_start_fl(const char *file, int line,
sq_append_quote_argv_pretty(&buf_payload, argv);
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -188,7 +194,7 @@ static void fn_exit_fl(const char *file, int line, uint64_t us_elapsed_absolute,
strbuf_addf(&buf_payload, "code:%d", code);
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -200,7 +206,7 @@ static void fn_signal(uint64_t us_elapsed_absolute, int signo)
strbuf_addf(&buf_payload, "signo:%d", signo);
perf_io_write_fl(__FILE__, __LINE__, event_name, NULL,
- &us_elapsed_absolute, NULL, NULL, &buf_payload);
+ &us_elapsed_absolute, NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -212,7 +218,7 @@ static void fn_atexit(uint64_t us_elapsed_absolute, int code)
strbuf_addf(&buf_payload, "code:%d", code);
perf_io_write_fl(__FILE__, __LINE__, event_name, NULL,
- &us_elapsed_absolute, NULL, NULL, &buf_payload);
+ &us_elapsed_absolute, NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -238,7 +244,7 @@ static void fn_error_va_fl(const char *file, int line, const char *fmt,
maybe_append_string_va(&buf_payload, fmt, ap);
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -250,7 +256,7 @@ static void fn_command_path_fl(const char *file, int line, const char *pathname)
strbuf_addstr(&buf_payload, pathname);
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -265,7 +271,7 @@ static void fn_command_ancestry_fl(const char *file, int line, const char **pare
strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -280,7 +286,7 @@ static void fn_command_name_fl(const char *file, int line, const char *name,
strbuf_addf(&buf_payload, " (%s)", hierarchy);
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -292,7 +298,7 @@ static void fn_command_mode_fl(const char *file, int line, const char *mode)
strbuf_addstr(&buf_payload, mode);
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -307,7 +313,7 @@ static void fn_alias_fl(const char *file, int line, const char *alias,
strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -343,7 +349,7 @@ static void fn_child_start_fl(const char *file, int line,
strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -357,7 +363,7 @@ static void fn_child_exit_fl(const char *file, int line,
strbuf_addf(&buf_payload, "[ch%d] pid:%d code:%d", cid, pid, code);
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- &us_elapsed_child, NULL, &buf_payload);
+ &us_elapsed_child, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -371,7 +377,7 @@ static void fn_child_ready_fl(const char *file, int line,
strbuf_addf(&buf_payload, "[ch%d] pid:%d ready:%s", cid, pid, ready);
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- &us_elapsed_child, NULL, &buf_payload);
+ &us_elapsed_child, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -382,7 +388,7 @@ static void fn_thread_start_fl(const char *file, int line,
struct strbuf buf_payload = STRBUF_INIT;
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -394,7 +400,7 @@ static void fn_thread_exit_fl(const char *file, int line,
struct strbuf buf_payload = STRBUF_INIT;
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- &us_elapsed_thread, NULL, &buf_payload);
+ &us_elapsed_thread, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -415,7 +421,7 @@ static void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,
strbuf_addch(&buf_payload, ']');
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -431,7 +437,7 @@ static void fn_exec_result_fl(const char *file, int line,
strbuf_addf(&buf_payload, " err:%s", strerror(code));
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -444,7 +450,7 @@ static void fn_param_fl(const char *file, int line, const char *param,
strbuf_addf(&buf_payload, "%s:%s", param, value);
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -458,7 +464,7 @@ static void fn_repo_fl(const char *file, int line,
sq_quote_buf_pretty(&buf_payload, repo->worktree);
perf_io_write_fl(file, line, event_name, repo, NULL, NULL, NULL,
- &buf_payload);
+ &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -480,7 +486,7 @@ static void fn_region_enter_printf_va_fl(const char *file, int line,
}
perf_io_write_fl(file, line, event_name, repo, &us_elapsed_absolute,
- NULL, category, &buf_payload);
+ NULL, category, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -500,7 +506,7 @@ static void fn_region_leave_printf_va_fl(
}
perf_io_write_fl(file, line, event_name, repo, &us_elapsed_absolute,
- &us_elapsed_region, category, &buf_payload);
+ &us_elapsed_region, category, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -515,7 +521,7 @@ static void fn_data_fl(const char *file, int line, uint64_t us_elapsed_absolute,
strbuf_addf(&buf_payload, "%s:%s", key, value);
perf_io_write_fl(file, line, event_name, repo, &us_elapsed_absolute,
- &us_elapsed_region, category, &buf_payload);
+ &us_elapsed_region, category, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -531,7 +537,7 @@ static void fn_data_json_fl(const char *file, int line,
strbuf_addf(&buf_payload, "%s:%s", key, value->json.buf);
perf_io_write_fl(file, line, event_name, repo, &us_elapsed_absolute,
- &us_elapsed_region, category, &buf_payload);
+ &us_elapsed_region, category, &buf_payload, NULL);
strbuf_release(&buf_payload);
}
@@ -545,7 +551,7 @@ static void fn_printf_va_fl(const char *file, int line,
maybe_append_string_va(&buf_payload, fmt, ap);
perf_io_write_fl(file, line, event_name, NULL, &us_elapsed_absolute,
- NULL, NULL, &buf_payload);
+ NULL, NULL, &buf_payload, NULL);
strbuf_release(&buf_payload);
}