trace: convert stderr backend to log

[Also update .travis.yml --enable-trace-backends=stderr
--Stefan]

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-id: 1452174932-28657-10-git-send-email-den@openvz.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Paolo Bonzini 2016-01-07 16:55:30 +03:00 committed by Stefan Hajnoczi
parent d890d50d18
commit ed7f5f1d8d
7 changed files with 24 additions and 7 deletions

View File

@ -78,7 +78,7 @@ matrix:
compiler: gcc compiler: gcc
# All the trace backends (apart from dtrace) # All the trace backends (apart from dtrace)
- env: TARGETS=i386-softmmu,x86_64-softmmu - env: TARGETS=i386-softmmu,x86_64-softmmu
EXTRA_CONFIG="--enable-trace-backends=stderr" EXTRA_CONFIG="--enable-trace-backends=log"
compiler: gcc compiler: gcc
- env: TARGETS=i386-softmmu,x86_64-softmmu - env: TARGETS=i386-softmmu,x86_64-softmmu
EXTRA_CONFIG="--enable-trace-backends=simple" EXTRA_CONFIG="--enable-trace-backends=simple"

4
configure vendored
View File

@ -5445,8 +5445,8 @@ if have_backend "simple"; then
# Set the appropriate trace file. # Set the appropriate trace file.
trace_file="\"$trace_file-\" FMT_pid" trace_file="\"$trace_file-\" FMT_pid"
fi fi
if have_backend "stderr"; then if have_backend "log"; then
echo "CONFIG_TRACE_STDERR=y" >> $config_host_mak echo "CONFIG_TRACE_LOG=y" >> $config_host_mak
fi fi
if have_backend "ust"; then if have_backend "ust"; then
echo "CONFIG_TRACE_UST=y" >> $config_host_mak echo "CONFIG_TRACE_UST=y" >> $config_host_mak

View File

@ -45,6 +45,7 @@ static inline bool qemu_log_separate(void)
#define CPU_LOG_MMU (1 << 12) #define CPU_LOG_MMU (1 << 12)
#define CPU_LOG_TB_NOCHAIN (1 << 13) #define CPU_LOG_TB_NOCHAIN (1 << 13)
#define CPU_LOG_PAGE (1 << 14) #define CPU_LOG_PAGE (1 << 14)
#define LOG_TRACE (1 << 15)
/* Returns true if a bit is set in the current loglevel mask /* Returns true if a bit is set in the current loglevel mask
*/ */

View File

@ -25,6 +25,7 @@ def generate_h_begin(events):
'#include <sys/types.h>', '#include <sys/types.h>',
'#include <unistd.h>', '#include <unistd.h>',
'#include "trace/control.h"', '#include "trace/control.h"',
'#include "qemu/log.h"',
'') '')
@ -36,10 +37,10 @@ def generate_h(event):
out(' if (trace_event_get_state(%(event_id)s)) {', out(' if (trace_event_get_state(%(event_id)s)) {',
' struct timeval _now;', ' struct timeval _now;',
' gettimeofday(&_now, NULL);', ' gettimeofday(&_now, NULL);',
' fprintf(stderr, "%%d@%%zd.%%06zd:%(name)s " %(fmt)s "\\n",', ' qemu_log_mask(LOG_TRACE, "%%d@%%zd.%%06zd:%(name)s " %(fmt)s "\\n",',
' getpid(),', ' getpid(),',
' (size_t)_now.tv_sec, (size_t)_now.tv_usec', ' (size_t)_now.tv_sec, (size_t)_now.tv_usec',
' %(argnames)s);', ' %(argnames)s);',
' }', ' }',
event_id="TRACE_" + event.name.upper(), event_id="TRACE_" + event.name.upper(),
name=event.name, name=event.name,

View File

@ -14,6 +14,9 @@
#ifdef CONFIG_TRACE_FTRACE #ifdef CONFIG_TRACE_FTRACE
#include "trace/ftrace.h" #include "trace/ftrace.h"
#endif #endif
#ifdef CONFIG_TRACE_LOG
#include "qemu/log.h"
#endif
#include "qemu/error-report.h" #include "qemu/error-report.h"
int trace_events_enabled_count; int trace_events_enabled_count;
@ -174,6 +177,13 @@ void trace_init_file(const char *file)
{ {
#ifdef CONFIG_TRACE_SIMPLE #ifdef CONFIG_TRACE_SIMPLE
st_set_trace_file(file); st_set_trace_file(file);
#elif defined CONFIG_TRACE_LOG
/* If both the simple and the log backends are enabled, "-trace file"
* only applies to the simple backend; use "-D" for the log backend.
*/
if (file) {
qemu_set_log_filename(file);
}
#else #else
if (file) { if (file) {
fprintf(stderr, "error: -trace file=...: " fprintf(stderr, "error: -trace file=...: "

View File

@ -51,6 +51,9 @@ void qemu_log_mask(int mask, const char *fmt, ...)
void do_qemu_set_log(int log_flags, bool use_own_buffers) void do_qemu_set_log(int log_flags, bool use_own_buffers)
{ {
qemu_loglevel = log_flags; qemu_loglevel = log_flags;
#ifdef CONFIG_TRACE_LOG
qemu_loglevel |= LOG_TRACE;
#endif
if (qemu_loglevel && !qemu_logfile) { if (qemu_loglevel && !qemu_logfile) {
if (logfilename) { if (logfilename) {
qemu_logfile = fopen(logfilename, log_append ? "a" : "w"); qemu_logfile = fopen(logfilename, log_append ? "a" : "w");

2
vl.c
View File

@ -4115,6 +4115,8 @@ int main(int argc, char **argv, char **envp)
exit(1); exit(1);
} }
qemu_set_log(mask); qemu_set_log(mask);
} else {
qemu_set_log(0);
} }
if (!trace_init_backends()) { if (!trace_init_backends()) {