trace_printk()
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 17 Sep 2014 17:53:52 +0000 (10:53 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 17 Sep 2014 18:42:25 +0000 (11:42 -0700)
commit63267699a6017aec3f5bf7b0f97177ed62d5953f
treefc07c500af56cb4e1ae444c1427385cb131f461a
parent3e742d70eb9903c8ce5d351092572fab7c057269
trace_printk()

trace_printk() will drop lines of formatted text into the trace buffer,
up to a limited size.

A couple things to note.
- The trace buffer prints syscalls as the complete, not when they start.
  If you have some trace prints from a syscalls execution, they will
  show up before the syscall entry
- If you have a trace print, it will always kmalloc and build the trace.
  We don't have controls (yet) for globally disabling any prints.  I
  didn't bother coupling it to the "trace" monitor commands, opting to
  wait to control it via #K.  Might not even be necessary, since these
  are for debugging.
- If kprof is not attached, the traces aren't saved (or accessible).
- I'd like it if we could use all traces as extra_data blobs, so we just
  pass the pointer to a block in the queue, instead of copying
  everything.  Not a big deal though.
kern/drivers/dev/kprof.c
kern/include/stdio.h
kern/src/syscall.c