mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 11:39:53 +00:00
Revert "Add a DTrace tracing backend targetted for SystemTAP compatability"
This reverts commit 4addb1127f
.
This commit is contained in:
parent
371c338eca
commit
06da6e44d7
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,8 +4,6 @@ config-host.*
|
||||
config-target.*
|
||||
trace.h
|
||||
trace.c
|
||||
trace-dtrace.h
|
||||
trace-dtrace.dtrace
|
||||
*-timestamp
|
||||
*-softmmu
|
||||
*-darwin-user
|
||||
|
23
Makefile
23
Makefile
@ -1,9 +1,6 @@
|
||||
# Makefile for QEMU.
|
||||
|
||||
GENERATED_HEADERS = config-host.h trace.h qemu-options.def
|
||||
ifeq ($(TRACE_BACKEND),dtrace)
|
||||
GENERATED_HEADERS += trace-dtrace.h
|
||||
endif
|
||||
|
||||
ifneq ($(wildcard config-host.mak),)
|
||||
# Put the all: rule here so that config-host.mak can contain dependencies.
|
||||
@ -111,11 +108,7 @@ ui/vnc.o: QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
|
||||
|
||||
bt-host.o: QEMU_CFLAGS += $(BLUEZ_CFLAGS)
|
||||
|
||||
ifeq ($(TRACE_BACKEND),dtrace)
|
||||
trace.h: trace.h-timestamp trace-dtrace.h
|
||||
else
|
||||
trace.h: trace.h-timestamp
|
||||
endif
|
||||
trace.h-timestamp: $(SRC_PATH)/trace-events config-host.mak
|
||||
$(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h < $< > $@," GEN trace.h")
|
||||
@cmp -s $@ trace.h || cp $@ trace.h
|
||||
@ -127,20 +120,6 @@ trace.c-timestamp: $(SRC_PATH)/trace-events config-host.mak
|
||||
|
||||
trace.o: trace.c $(GENERATED_HEADERS)
|
||||
|
||||
trace-dtrace.h: trace-dtrace.dtrace
|
||||
$(call quiet-command,dtrace -o $@ -h -s $<, " GEN trace-dtrace.h")
|
||||
|
||||
# Normal practice is to name DTrace probe file with a '.d' extension
|
||||
# but that gets picked up by QEMU's Makefile as an external dependancy
|
||||
# rule file. So we use '.dtrace' instead
|
||||
trace-dtrace.dtrace: trace-dtrace.dtrace-timestamp
|
||||
trace-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events config-host.mak
|
||||
$(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -d < $< > $@," GEN trace-dtrace.dtrace")
|
||||
@cmp -s $@ trace-dtrace.dtrace || cp $@ trace-dtrace.dtrace
|
||||
|
||||
trace-dtrace.o: trace-dtrace.dtrace $(GENERATED_HEADERS)
|
||||
$(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace-dtrace.o")
|
||||
|
||||
simpletrace.o: simpletrace.c $(GENERATED_HEADERS)
|
||||
|
||||
version.o: $(SRC_PATH)/version.rc config-host.mak
|
||||
@ -178,8 +157,6 @@ clean:
|
||||
rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d block/*.o block/*.d net/*.o net/*.d fsdev/*.o fsdev/*.d ui/*.o ui/*.d
|
||||
rm -f qemu-img-cmds.h
|
||||
rm -f trace.c trace.h trace.c-timestamp trace.h-timestamp
|
||||
rm -f trace-dtrace.dtrace trace-dtrace.dtrace-timestamp
|
||||
rm -f trace-dtrace.h trace-dtrace.h-timestamp
|
||||
$(MAKE) -C tests clean
|
||||
for d in $(ALL_SUBDIRS) libhw32 libhw64 libuser libdis libdis-user; do \
|
||||
if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
|
||||
|
@ -286,15 +286,11 @@ libdis-$(CONFIG_SPARC_DIS) += sparc-dis.o
|
||||
######################################################################
|
||||
# trace
|
||||
|
||||
ifeq ($(TRACE_BACKEND),dtrace)
|
||||
trace-obj-y = trace-dtrace.o
|
||||
else
|
||||
trace-obj-y = trace.o
|
||||
ifeq ($(TRACE_BACKEND),simple)
|
||||
trace-obj-y += simpletrace.o
|
||||
user-obj-y += qemu-timer-common.o
|
||||
endif
|
||||
endif
|
||||
|
||||
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||
|
||||
|
14
configure
vendored
14
configure
vendored
@ -929,7 +929,7 @@ echo " --enable-docs enable documentation build"
|
||||
echo " --disable-docs disable documentation build"
|
||||
echo " --disable-vhost-net disable vhost-net acceleration support"
|
||||
echo " --enable-vhost-net enable vhost-net acceleration support"
|
||||
echo " --trace-backend=B Trace backend nop simple ust dtrace"
|
||||
echo " --trace-backend=B Trace backend nop simple ust"
|
||||
echo " --trace-file=NAME Full PATH,NAME of file to store traces"
|
||||
echo " Default:trace-<pid>"
|
||||
echo " --disable-spice disable spice"
|
||||
@ -2193,18 +2193,6 @@ EOF
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# For 'dtrace' backend, test if 'dtrace' command is present
|
||||
if test "$trace_backend" = "dtrace"; then
|
||||
if ! has 'dtrace' ; then
|
||||
echo
|
||||
echo "Error: dtrace command is not found in PATH $PATH"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# End of CC checks
|
||||
# After here, no more $cc or $ld runs
|
||||
|
116
tracetool
116
tracetool
@ -20,12 +20,10 @@ Backends:
|
||||
--nop Tracing disabled
|
||||
--simple Simple built-in backend
|
||||
--ust LTTng User Space Tracing backend
|
||||
--dtrace DTrace/SystemTAP backend
|
||||
|
||||
Output formats:
|
||||
-h Generate .h file
|
||||
-c Generate .c file
|
||||
-d Generate .d file (DTrace only)
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
@ -48,9 +46,8 @@ get_args()
|
||||
# Get the argument name list of a trace event
|
||||
get_argnames()
|
||||
{
|
||||
local nfields field name sep
|
||||
local nfields field name
|
||||
nfields=0
|
||||
sep="$2"
|
||||
for field in $(get_args "$1"); do
|
||||
nfields=$((nfields + 1))
|
||||
|
||||
@ -61,7 +58,7 @@ get_argnames()
|
||||
name=${field%,}
|
||||
test "$field" = "$name" && continue
|
||||
|
||||
printf "%s%s " $name $sep
|
||||
printf "%s" "$name, "
|
||||
done
|
||||
|
||||
# Last argument name
|
||||
@ -76,7 +73,7 @@ get_argc()
|
||||
{
|
||||
local name argc
|
||||
argc=0
|
||||
for name in $(get_argnames "$1", ","); do
|
||||
for name in $(get_argnames "$1"); do
|
||||
argc=$((argc + 1))
|
||||
done
|
||||
echo $argc
|
||||
@ -157,7 +154,7 @@ EOF
|
||||
cast_args_to_uint64_t()
|
||||
{
|
||||
local arg
|
||||
for arg in $(get_argnames "$1", ","); do
|
||||
for arg in $(get_argnames "$1"); do
|
||||
printf "%s" "(uint64_t)(uintptr_t)$arg"
|
||||
done
|
||||
}
|
||||
@ -250,7 +247,7 @@ linetoh_ust()
|
||||
local name args argnames
|
||||
name=$(get_name "$1")
|
||||
args=$(get_args "$1")
|
||||
argnames=$(get_argnames "$1", ",")
|
||||
argnames=$(get_argnames "$1")
|
||||
|
||||
cat <<EOF
|
||||
DECLARE_TRACE(ust_$name, TP_PROTO($args), TP_ARGS($argnames));
|
||||
@ -277,7 +274,7 @@ linetoc_ust()
|
||||
local name args argnames fmt
|
||||
name=$(get_name "$1")
|
||||
args=$(get_args "$1")
|
||||
argnames=$(get_argnames "$1", ",")
|
||||
argnames=$(get_argnames "$1")
|
||||
fmt=$(get_fmt "$1")
|
||||
|
||||
cat <<EOF
|
||||
@ -309,87 +306,6 @@ EOF
|
||||
echo "}"
|
||||
}
|
||||
|
||||
linetoh_begin_dtrace()
|
||||
{
|
||||
cat <<EOF
|
||||
#include "trace-dtrace.h"
|
||||
EOF
|
||||
}
|
||||
|
||||
linetoh_dtrace()
|
||||
{
|
||||
local name args argnames state nameupper
|
||||
name=$(get_name "$1")
|
||||
args=$(get_args "$1")
|
||||
argnames=$(get_argnames "$1", ",")
|
||||
state=$(get_state "$1")
|
||||
if [ "$state" = "0" ] ; then
|
||||
name=${name##disable }
|
||||
fi
|
||||
|
||||
nameupper=`echo $name | tr '[:lower:]' '[:upper:]'`
|
||||
|
||||
# Define an empty function for the trace event
|
||||
cat <<EOF
|
||||
static inline void trace_$name($args) {
|
||||
if (QEMU_${nameupper}_ENABLED()) {
|
||||
QEMU_${nameupper}($argnames);
|
||||
}
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
linetoh_end_dtrace()
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
linetoc_begin_dtrace()
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
linetoc_dtrace()
|
||||
{
|
||||
# No need for function definitions in dtrace backend
|
||||
return
|
||||
}
|
||||
|
||||
linetoc_end_dtrace()
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
linetod_begin_dtrace()
|
||||
{
|
||||
cat <<EOF
|
||||
provider qemu {
|
||||
EOF
|
||||
}
|
||||
|
||||
linetod_dtrace()
|
||||
{
|
||||
local name args state
|
||||
name=$(get_name "$1")
|
||||
args=$(get_args "$1")
|
||||
state=$(get_state "$1")
|
||||
if [ "$state" = "0" ] ; then
|
||||
name=${name##disable }
|
||||
fi
|
||||
|
||||
# Define prototype for probe arguments
|
||||
cat <<EOF
|
||||
probe $name($args);
|
||||
EOF
|
||||
}
|
||||
|
||||
linetod_end_dtrace()
|
||||
{
|
||||
cat <<EOF
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
# Process stdin by calling begin, line, and end functions for the backend
|
||||
convert()
|
||||
{
|
||||
@ -408,10 +324,9 @@ convert()
|
||||
disable=${str%%disable *}
|
||||
echo
|
||||
if test -z "$disable"; then
|
||||
# Pass the disabled state as an arg for the simple
|
||||
# or DTrace backends which handle it dynamically.
|
||||
# For all other backends, call lineto$1_nop()
|
||||
if [ $backend = "simple" -o "$backend" = "dtrace" ]; then
|
||||
# Pass the disabled state as an arg to lineto$1_simple().
|
||||
# For all other cases, call lineto$1_nop()
|
||||
if [ $backend = "simple" ]; then
|
||||
"$process_line" "$str"
|
||||
else
|
||||
"lineto$1_nop" "${str##disable }"
|
||||
@ -445,19 +360,9 @@ tracetoc()
|
||||
convert c
|
||||
}
|
||||
|
||||
tracetod()
|
||||
{
|
||||
if [ $backend != "dtrace" ]; then
|
||||
echo "DTrace probe generator not applicable to $backend backend"
|
||||
exit 1
|
||||
fi
|
||||
echo "/* This file is autogenerated by tracetool, do not edit. */"
|
||||
convert d
|
||||
}
|
||||
|
||||
# Choose backend
|
||||
case "$1" in
|
||||
"--nop" | "--simple" | "--ust" | "--dtrace") backend="${1#--}" ;;
|
||||
"--nop" | "--simple" | "--ust") backend="${1#--}" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
shift
|
||||
@ -465,7 +370,6 @@ shift
|
||||
case "$1" in
|
||||
"-h") tracetoh ;;
|
||||
"-c") tracetoc ;;
|
||||
"-d") tracetod ;;
|
||||
"--check-backend") exit 0 ;; # used by ./configure to test for backend
|
||||
*) usage ;;
|
||||
esac
|
||||
|
Loading…
Reference in New Issue
Block a user