printdump(), used for tracing

Git-fu'd by brho.
Move to a queue-based system call tracing

Now, we allocate a trace record in the system call and, when we exit, write it
to a queue for the kptrace qid.

Read reads from the queue.

Records are text, delimited by a newline.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Git-fu'd by brho
We can now trace various system calls

And see return values, and see file open names and read/write data

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Git-fu'd by brho
Syscall tracing handles dropped traces

If a trace is getting dropped, we'll output the trace instead.

This should rarely happen (OOM), unless we change the queue code.
Syscall tracing formatting touchups

The main thing is that we print the real time (since boot) in seconds,
instead of TSC ticks.

As a reminder to anyone using c89, the TSC only resets on a cold boot.
Perhaps that has something to do with its service processor locking up
every so often!  (we'll see if it is every 49 days)