trace: Print PID and time in stderr traces

When debugging migration it's useful to know the PID of
each trace message so you can figure out if it came from the source
or the destination.

Printing the time makes it easy to do latency measurements or timings
between trace points.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-id: 1421746875-9962-1-git-send-email-dgilbert@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Dr. David Alan Gilbert 2015-01-20 09:41:15 +00:00 committed by Stefan Hajnoczi
parent 16017c4854
commit dd9fe29c80
1 changed files with 9 additions and 1 deletions

View File

@ -21,6 +21,9 @@ PUBLIC = True
def generate_h_begin(events):
out('#include <stdio.h>',
'#include <sys/time.h>',
'#include <sys/types.h>',
'#include <unistd.h>',
'#include "trace/control.h"',
'')
@ -31,7 +34,12 @@ def generate_h(event):
argnames = ", " + argnames
out(' if (trace_event_get_state(%(event_id)s)) {',
' fprintf(stderr, "%(name)s " %(fmt)s "\\n" %(argnames)s);',
' struct timeval _now;',
' gettimeofday(&_now, NULL);',
' fprintf(stderr, "%%d@%%zd.%%06zd:%(name)s " %(fmt)s "\\n",',
' getpid(),',
' (size_t)_now.tv_sec, (size_t)_now.tv_usec',
' %(argnames)s);',
' }',
event_id="TRACE_" + event.name.upper(),
name=event.name,