On Tue, Jul 3, 2012 at 10:20 AM, Harsh Prateek Bora
<ha...@linux.vnet.ibm.com> wrote:
> Existing simpletrace backend allows to trace at max 6 args and does not
> support strings. This newer tracelog format gets rid of fixed size records
> and therefore allows to trace variable number of args including strings.
>
> Sample trace:
> v9fs_version 0.000 tag=0xffff id=0x64 msize=0x2000 version=9P2000.L
> v9fs_version_return 6.705 tag=0xffff id=0x64 msize=0x2000 version=9P2000.L
> v9fs_attach 174.467 tag=0x1 id=0x68 fid=0x0 afid=0xffffffffffffffff
> uname=nobody aname=
> v9fs_attach_return 4720.454 tag=0x1 id=0x68 type=0xffffffffffffff80
> version=0x4f2a4dd0  path=0x220ea6

The writeout thread deadlocked itself when it called g_malloc() and
therefore became a tracing thread:

Thread 3 (Thread 0x7fad8b144700 (LWP 1387)):
#0  0x00007ffffa1e88de in ?? ()
#1  0x00007fad9421de86 in *__GI_clock_gettime
(clock_id=clock_id@entry=1, tp=tp@entry=0x7fad8b143be0) at
../sysdeps/unix/clock_gettime.c:116
#2  0x00007fad94813e46 in get_clock () at ./qemu-timer.h:124
#3  trace_record_start (rec=rec@entry=0x7fad8b143c10,
event=140383339428832, event@entry=0, datasize=datasize@entry=16) at
trace/simple.c:219
#4  0x00007fad947f7185 in trace_g_malloc (size=size@entry=32,
ptr=ptr@entry=0x7fad340008b0) at trace.c:770
#5  0x00007fad947b5754 in malloc_and_trace (n_bytes=32) at
/home/stefanha/qemu/vl.c:2240
#6  0x00007fad93d70de1 in g_malloc (n_bytes=n_bytes@entry=32) at
/tmp/buildd/glib2.0-2.32.3/./glib/gmem.c:159
#7  0x00007fad94813bce in get_trace_record (recordptr=<synthetic
pointer>, idx=56943) at trace/simple.c:114
#8  writeout_thread (opaque=<optimized out>) at trace/simple.c:189
#9  0x00007fad93d8ddf5 in g_thread_proxy (data=0x7fad96738800) at
/tmp/buildd/glib2.0-2.32.3/./glib/gthread.c:801
#10 0x00007fad90ed7b50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#11 0x00007fad90c226dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Stefan

Reply via email to