[PATCH 1/3] trace-cmd extract: Always read BTF file if available

Steven Rostedt <[email protected]> Tue, 3 Feb 2026 20:14:53 -0500
Newsgroups org.kernel.vger.linux-trace-devel
Message-ID <[email protected]>
From: "Steven Rostedt (Google)" <[email protected]>

On extract, always read the btf file as it isn't known yet if it will be
needed or not.

Signed-off-by: Steven Rostedt (Google) <[email protected]>
---
 tracecmd/trace-record.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
index 4872d0d77c8e..1cef9a623158 100644
--- a/tracecmd/trace-record.c
+++ b/tracecmd/trace-record.c
@@ -4666,13 +4666,21 @@ static void check_need_btf(bool *need_btf, struct tracefs_instance *instance)
 	free(current);
 }
 
+#define IS_EXTRACT(ctx) ((ctx)->curr_cmd == CMD_extract)
+#define IS_START(ctx) ((ctx)->curr_cmd == CMD_start)
+#define IS_CMDSET(ctx) ((ctx)->curr_cmd == CMD_set)
+#define IS_STREAM(ctx) ((ctx)->curr_cmd == CMD_stream)
+#define IS_PROFILE(ctx) ((ctx)->curr_cmd == CMD_profile)
+#define IS_RECORD(ctx) ((ctx)->curr_cmd == CMD_record)
+#define IS_RECORD_AGENT(ctx) ((ctx)->curr_cmd == CMD_record_agent)
+
 static void record_data(struct common_record_context *ctx)
 {
 	struct tracecmd_output *handle;
 	struct buffer_instance *instance;
 	bool have_proxy = false;
 	bool local = false;
-	bool need_btf = false;
+	bool need_btf = IS_EXTRACT(ctx);
 	int max_cpu_count = local_cpu_count;
 	char **temp_files;
 	int i;
@@ -6230,14 +6238,6 @@ static void init_common_record_context(struct common_record_context *ctx,
 	init_top_instance();
 }
 
-#define IS_EXTRACT(ctx) ((ctx)->curr_cmd == CMD_extract)
-#define IS_START(ctx) ((ctx)->curr_cmd == CMD_start)
-#define IS_CMDSET(ctx) ((ctx)->curr_cmd == CMD_set)
-#define IS_STREAM(ctx) ((ctx)->curr_cmd == CMD_stream)
-#define IS_PROFILE(ctx) ((ctx)->curr_cmd == CMD_profile)
-#define IS_RECORD(ctx) ((ctx)->curr_cmd == CMD_record)
-#define IS_RECORD_AGENT(ctx) ((ctx)->curr_cmd == CMD_record_agent)
-
 static void add_argv(struct buffer_instance *instance, char *arg, bool prepend)
 {
 	instance->argv = realloc(instance->argv,
-- 
2.51.0