mirror of
				https://git.proxmox.com/git/qemu
				synced 2025-10-31 15:09:27 +00:00 
			
		
		
		
	 781e9545db
			
		
	
	
		781e9545db
		
	
	
	
	
		
			
			This patch adds a ftrace tracing backend which sends trace event to ftrace marker file. You can effectively compare qemu trace data and kernel(especially, kvm.ko when using KVM) trace data. The ftrace backend is restricted to Linux only. To try out the ftrace backend: $ ./configure --trace-backend=ftrace $ make if you use KVM, enable kvm events in ftrace: # sudo echo 1 > /sys/kernel/debug/tracing/events/kvm/enable After running qemu by root user, you can get the trace: # cat /sys/kernel/debug/tracing/trace Signed-off-by: Eiichi Tsukata <eiichi.tsukata.xh@hitachi.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # -*- mode: makefile -*-
 | |
| 
 | |
| ######################################################################
 | |
| # Auto-generated event descriptions
 | |
| 
 | |
| $(obj)/generated-events.h: $(obj)/generated-events.h-timestamp
 | |
| $(obj)/generated-events.h-timestamp: $(SRC_PATH)/trace-events
 | |
| 	$(call quiet-command,$(TRACETOOL) \
 | |
| 		--format=events-h \
 | |
| 		--backend=events \
 | |
| 		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
 | |
| 	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
 | |
| 
 | |
| $(obj)/generated-events.c: $(obj)/generated-events.c-timestamp $(BUILD_DIR)/config-host.mak
 | |
| $(obj)/generated-events.c-timestamp: $(SRC_PATH)/trace-events
 | |
| 	$(call quiet-command,$(TRACETOOL) \
 | |
| 		--format=events-c \
 | |
| 		--backend=events \
 | |
| 		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
 | |
| 	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
 | |
| 
 | |
| util-obj-y += generated-events.o
 | |
| 
 | |
| 
 | |
| ######################################################################
 | |
| # Auto-generated tracing routines
 | |
| 
 | |
| $(obj)/generated-tracers.h: $(obj)/generated-tracers.h-timestamp
 | |
| 	@cmp -s $< $@ || cp $< $@
 | |
| $(obj)/generated-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
 | |
| 	$(call quiet-command,$(TRACETOOL) \
 | |
| 		--format=h \
 | |
| 		--backend=$(TRACE_BACKEND) \
 | |
| 		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
 | |
| 
 | |
| ######################################################################
 | |
| # Auto-generated tracing routines (non-DTrace)
 | |
| 
 | |
| ifneq ($(TRACE_BACKEND),dtrace)
 | |
| $(obj)/generated-tracers.c: $(obj)/generated-tracers.c-timestamp
 | |
| 	@cmp -s $< $@ || cp $< $@
 | |
| $(obj)/generated-tracers.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
 | |
| 	$(call quiet-command,$(TRACETOOL) \
 | |
| 		--format=c \
 | |
| 		--backend=$(TRACE_BACKEND) \
 | |
| 		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
 | |
| 
 | |
| $(obj)/generated-tracers.o: $(obj)/generated-tracers.c $(obj)/generated-tracers.h
 | |
| endif
 | |
| 
 | |
| 
 | |
| ######################################################################
 | |
| # Auto-generated DTrace code
 | |
| 
 | |
| # Normal practice is to name DTrace probe file with a '.d' extension
 | |
| # but that gets picked up by QEMU's Makefile as an external dependency
 | |
| # rule file. So we use '.dtrace' instead
 | |
| ifeq ($(TRACE_BACKEND),dtrace)
 | |
| $(obj)/generated-tracers.dtrace: $(obj)/generated-tracers.dtrace-timestamp
 | |
| $(obj)/generated-tracers.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
 | |
| 	$(call quiet-command,$(TRACETOOL) \
 | |
| 		--format=d \
 | |
| 		--backend=$(TRACE_BACKEND) \
 | |
| 		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
 | |
| 	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
 | |
| 
 | |
| $(obj)/generated-tracers-dtrace.h: $(obj)/generated-tracers.dtrace
 | |
| 	$(call quiet-command,dtrace -o $@ -h -s $<, "  GEN   $@")
 | |
| 
 | |
| $(obj)/generated-tracers.o: $(obj)/generated-tracers.dtrace
 | |
| endif
 | |
| 
 | |
| ######################################################################
 | |
| # Backend code
 | |
| 
 | |
| util-obj-$(CONFIG_TRACE_DEFAULT) += default.o
 | |
| util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o
 | |
| util-obj-$(CONFIG_TRACE_STDERR) += stderr.o
 | |
| util-obj-$(CONFIG_TRACE_FTRACE) += ftrace.o
 | |
| util-obj-y += control.o
 | |
| util-obj-y += generated-tracers.o
 |