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.*
|
config-target.*
|
||||||
trace.h
|
trace.h
|
||||||
trace.c
|
trace.c
|
||||||
trace-dtrace.h
|
|
||||||
trace-dtrace.dtrace
|
|
||||||
*-timestamp
|
*-timestamp
|
||||||
*-softmmu
|
*-softmmu
|
||||||
*-darwin-user
|
*-darwin-user
|
||||||
|
23
Makefile
23
Makefile
@ -1,9 +1,6 @@
|
|||||||
# Makefile for QEMU.
|
# Makefile for QEMU.
|
||||||
|
|
||||||
GENERATED_HEADERS = config-host.h trace.h qemu-options.def
|
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),)
|
ifneq ($(wildcard config-host.mak),)
|
||||||
# Put the all: rule here so that config-host.mak can contain dependencies.
|
# 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)
|
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
|
trace.h: trace.h-timestamp
|
||||||
endif
|
|
||||||
trace.h-timestamp: $(SRC_PATH)/trace-events config-host.mak
|
trace.h-timestamp: $(SRC_PATH)/trace-events config-host.mak
|
||||||
$(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h < $< > $@," GEN trace.h")
|
$(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h < $< > $@," GEN trace.h")
|
||||||
@cmp -s $@ trace.h || cp $@ 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.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)
|
simpletrace.o: simpletrace.c $(GENERATED_HEADERS)
|
||||||
|
|
||||||
version.o: $(SRC_PATH)/version.rc config-host.mak
|
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 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 qemu-img-cmds.h
|
||||||
rm -f trace.c trace.h trace.c-timestamp trace.h-timestamp
|
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
|
$(MAKE) -C tests clean
|
||||||
for d in $(ALL_SUBDIRS) libhw32 libhw64 libuser libdis libdis-user; do \
|
for d in $(ALL_SUBDIRS) libhw32 libhw64 libuser libdis libdis-user; do \
|
||||||
if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
|
if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
|
||||||
|
@ -286,15 +286,11 @@ libdis-$(CONFIG_SPARC_DIS) += sparc-dis.o
|
|||||||
######################################################################
|
######################################################################
|
||||||
# trace
|
# trace
|
||||||
|
|
||||||
ifeq ($(TRACE_BACKEND),dtrace)
|
|
||||||
trace-obj-y = trace-dtrace.o
|
|
||||||
else
|
|
||||||
trace-obj-y = trace.o
|
trace-obj-y = trace.o
|
||||||
ifeq ($(TRACE_BACKEND),simple)
|
ifeq ($(TRACE_BACKEND),simple)
|
||||||
trace-obj-y += simpletrace.o
|
trace-obj-y += simpletrace.o
|
||||||
user-obj-y += qemu-timer-common.o
|
user-obj-y += qemu-timer-common.o
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
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-docs disable documentation build"
|
||||||
echo " --disable-vhost-net disable vhost-net acceleration support"
|
echo " --disable-vhost-net disable vhost-net acceleration support"
|
||||||
echo " --enable-vhost-net enable 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 " --trace-file=NAME Full PATH,NAME of file to store traces"
|
||||||
echo " Default:trace-<pid>"
|
echo " Default:trace-<pid>"
|
||||||
echo " --disable-spice disable spice"
|
echo " --disable-spice disable spice"
|
||||||
@ -2193,18 +2193,6 @@ EOF
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
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
|
# End of CC checks
|
||||||
# After here, no more $cc or $ld runs
|
# After here, no more $cc or $ld runs
|
||||||
|
116
tracetool
116
tracetool
@ -20,12 +20,10 @@ Backends:
|
|||||||
--nop Tracing disabled
|
--nop Tracing disabled
|
||||||
--simple Simple built-in backend
|
--simple Simple built-in backend
|
||||||
--ust LTTng User Space Tracing backend
|
--ust LTTng User Space Tracing backend
|
||||||
--dtrace DTrace/SystemTAP backend
|
|
||||||
|
|
||||||
Output formats:
|
Output formats:
|
||||||
-h Generate .h file
|
-h Generate .h file
|
||||||
-c Generate .c file
|
-c Generate .c file
|
||||||
-d Generate .d file (DTrace only)
|
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -48,9 +46,8 @@ get_args()
|
|||||||
# Get the argument name list of a trace event
|
# Get the argument name list of a trace event
|
||||||
get_argnames()
|
get_argnames()
|
||||||
{
|
{
|
||||||
local nfields field name sep
|
local nfields field name
|
||||||
nfields=0
|
nfields=0
|
||||||
sep="$2"
|
|
||||||
for field in $(get_args "$1"); do
|
for field in $(get_args "$1"); do
|
||||||
nfields=$((nfields + 1))
|
nfields=$((nfields + 1))
|
||||||
|
|
||||||
@ -61,7 +58,7 @@ get_argnames()
|
|||||||
name=${field%,}
|
name=${field%,}
|
||||||
test "$field" = "$name" && continue
|
test "$field" = "$name" && continue
|
||||||
|
|
||||||
printf "%s%s " $name $sep
|
printf "%s" "$name, "
|
||||||
done
|
done
|
||||||
|
|
||||||
# Last argument name
|
# Last argument name
|
||||||
@ -76,7 +73,7 @@ get_argc()
|
|||||||
{
|
{
|
||||||
local name argc
|
local name argc
|
||||||
argc=0
|
argc=0
|
||||||
for name in $(get_argnames "$1", ","); do
|
for name in $(get_argnames "$1"); do
|
||||||
argc=$((argc + 1))
|
argc=$((argc + 1))
|
||||||
done
|
done
|
||||||
echo $argc
|
echo $argc
|
||||||
@ -157,7 +154,7 @@ EOF
|
|||||||
cast_args_to_uint64_t()
|
cast_args_to_uint64_t()
|
||||||
{
|
{
|
||||||
local arg
|
local arg
|
||||||
for arg in $(get_argnames "$1", ","); do
|
for arg in $(get_argnames "$1"); do
|
||||||
printf "%s" "(uint64_t)(uintptr_t)$arg"
|
printf "%s" "(uint64_t)(uintptr_t)$arg"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -250,7 +247,7 @@ linetoh_ust()
|
|||||||
local name args argnames
|
local name args argnames
|
||||||
name=$(get_name "$1")
|
name=$(get_name "$1")
|
||||||
args=$(get_args "$1")
|
args=$(get_args "$1")
|
||||||
argnames=$(get_argnames "$1", ",")
|
argnames=$(get_argnames "$1")
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
DECLARE_TRACE(ust_$name, TP_PROTO($args), TP_ARGS($argnames));
|
DECLARE_TRACE(ust_$name, TP_PROTO($args), TP_ARGS($argnames));
|
||||||
@ -277,7 +274,7 @@ linetoc_ust()
|
|||||||
local name args argnames fmt
|
local name args argnames fmt
|
||||||
name=$(get_name "$1")
|
name=$(get_name "$1")
|
||||||
args=$(get_args "$1")
|
args=$(get_args "$1")
|
||||||
argnames=$(get_argnames "$1", ",")
|
argnames=$(get_argnames "$1")
|
||||||
fmt=$(get_fmt "$1")
|
fmt=$(get_fmt "$1")
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@ -309,87 +306,6 @@ EOF
|
|||||||
echo "}"
|
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
|
# Process stdin by calling begin, line, and end functions for the backend
|
||||||
convert()
|
convert()
|
||||||
{
|
{
|
||||||
@ -408,10 +324,9 @@ convert()
|
|||||||
disable=${str%%disable *}
|
disable=${str%%disable *}
|
||||||
echo
|
echo
|
||||||
if test -z "$disable"; then
|
if test -z "$disable"; then
|
||||||
# Pass the disabled state as an arg for the simple
|
# Pass the disabled state as an arg to lineto$1_simple().
|
||||||
# or DTrace backends which handle it dynamically.
|
# For all other cases, call lineto$1_nop()
|
||||||
# For all other backends, call lineto$1_nop()
|
if [ $backend = "simple" ]; then
|
||||||
if [ $backend = "simple" -o "$backend" = "dtrace" ]; then
|
|
||||||
"$process_line" "$str"
|
"$process_line" "$str"
|
||||||
else
|
else
|
||||||
"lineto$1_nop" "${str##disable }"
|
"lineto$1_nop" "${str##disable }"
|
||||||
@ -445,19 +360,9 @@ tracetoc()
|
|||||||
convert c
|
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
|
# Choose backend
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"--nop" | "--simple" | "--ust" | "--dtrace") backend="${1#--}" ;;
|
"--nop" | "--simple" | "--ust") backend="${1#--}" ;;
|
||||||
*) usage ;;
|
*) usage ;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
@ -465,7 +370,6 @@ shift
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
"-h") tracetoh ;;
|
"-h") tracetoh ;;
|
||||||
"-c") tracetoc ;;
|
"-c") tracetoc ;;
|
||||||
"-d") tracetod ;;
|
|
||||||
"--check-backend") exit 0 ;; # used by ./configure to test for backend
|
"--check-backend") exit 0 ;; # used by ./configure to test for backend
|
||||||
*) usage ;;
|
*) usage ;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user