Bug 213045

Summary: trace-cmd profile is not working
Product: Tools Reporter: Jerome Marchand (jmarchan)
Component: Trace-cmd/KernelsharkAssignee: Default virtual assignee for Trace-cmd and kernelshark (tools_tracecmd_kernelshark)
Status: RESOLVED CODE_FIX    
Severity: normal CC: qiaozqjhsy, rostedt, tz.stoyanov
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: Any Subsystem:
Regression: No Bisected commit-id:

Description Jerome Marchand 2021-05-12 14:07:13 UTC
Streams, and thus trace-cmd profile, are not working. A simple "trace-cmd profile ls" command exit with the following message "Creating stream for 0". I've been  ooking at it and the issue is that tracecmd_read_headers() tries to read the cmdlines, cpus and options sections that have not been written to the temporary file when called from trace_stream_init().

AFAICT, it is caused by the two following patches:

commit 1eea02a4 ("trace-cmd: Write saved cmdlines in the trace file at the end of the trace.") which moved the writing of cmdlines from create_file_fd() to tracecmd_create_file_latency() and tracecmd_append_cpu_data()

commit 5d4d7ec3 ("trace-cmd: Move reading of trace.dat options to tracecmd_read_headers()") which moved the reading of options and cpu datas to tracecmd_read_headers().