This patchset adds support for tracing guest kernels to trace-cmd. The first two patches in the series are minor cleanups which can be merged separately. Changes in v7: - fixed potential memory leak in add_arg() - call msg_free() in tracecmd_msg_recv_trace_req() eventhough we're stealing the message buffer - added is_guest and is_agent macros and use throughout tracecmd_record.c instead of testing instance->flags bits - avoid memory allocation in make_dir() Changes in v6: - added specialized data transfer path over FIFOs making single splice() per iteration - made tracecmd_msg_recv_trace_req/tracecmd_msg_recv_trace_resp more defensive to invalid messages Changes in v5: - add FIFOs transport for tracing data - fixed a bug in tracecmd_msg_wait_close Changes in v4: - detect and use splice(2) on vsock sockets if possible - switch port numbers to unsigned int - trace-cmd record --date flag is now set for all guests if provided by the user - removed grow_cap and exponential buffer size growth Changes in v3: - addressed Steven's feedback - detect and disable guest tracing if <linux/vm_sockets.h> is not available - the --date flag is now treated as global for all guest instances - fixed a bug that caused --date to be ignored for host tracing data when tracing guests Changes in v2: - rebased on top of protocol V3 - fixed system clock timestamps with the --date flag Slavomir Kaslev (12): trace-cmd: Minor cleanup in tracecmd_start_recording() trace-cmd: Minor cleanup in print_stat() trace-cmd: Add tracecmd_create_recorder_virt function trace-cmd: Add TRACE_REQ and TRACE_RESP messages trace-cmd: Add buffer instance flags for tracing in guest and agent context trace-cmd: Add VM kernel tracing over vsockets transport trace-cmd: Use splice(2) for vsockets if available trace-cmd: Add `trace-cmd setup-guest` command trace-cmd: Try to autodetect number of guest CPUs in setup-guest if not specified trace-cmd: Add setup-guest flag for attaching FIFOs to the guest VM config trace-cmd: Add splice() recording from FIFO without additional pipe buffer trace-cmd: Add VM tracing over FIFOs transport Steven Rostedt (VMware) (1): trace-cmd: Detect if vsockets are available Makefile | 7 + include/trace-cmd/trace-cmd.h | 16 +- lib/trace-cmd/trace-recorder.c | 140 ++++-- tracecmd/Makefile | 7 +- tracecmd/include/trace-local.h | 29 ++ tracecmd/trace-agent.c | 257 +++++++++++ tracecmd/trace-cmd.c | 4 + tracecmd/trace-msg.c | 219 ++++++++- tracecmd/trace-record.c | 779 ++++++++++++++++++++++++++++++--- tracecmd/trace-setup-guest.c | 245 +++++++++++ tracecmd/trace-usage.c | 22 +- 11 files changed, 1637 insertions(+), 88 deletions(-) create mode 100644 tracecmd/trace-agent.c create mode 100644 tracecmd/trace-setup-guest.c -- 2.19.1
![]() |