sched: ballance more evenly

This makes idle time spread more evenly across CPUs, but still doesn't
seem to help Cassandra READ workload much.
make: add CMakeLists.txt for integration with CLion
trace: add prof-idle-wake command

Shows the profile of waits which when finished caused the CPU to stop
idling.
Transparent dumpfile/tracefile usage + extended symbol resolution (if avail)

Instead of converting from trace dump files to tracefiles (basically raw trace data),
detect which we are reading on opening the file, and use the appropriate reader to extract data.
Also allow more chaining of symbol resolution, making it possible to use trace dump
symbol info when available (and debug symbol resolution fails).

(Note the dump format reader assumes the slightly revised dump symbol format, which in turn is in a
different patch. But since nothing until that patch actually creates SYMB chunks in dump files,
this is safe).

Signed-off-by: Calle Wilund <calle@cloudius-systems.com>
Mechanism to auto-load resident JVMTI agents iff included in image

Will make java launcher add any JVMTI agent (i.e. .so) present in
'/usr/lib/jvm/agents/autoload/'.

Since dickering with actual appliance command lines is error prone,
and having a feature (agent) included or not in the image should
be distinction enough, picking up extensions this way feels ok.

Purpose of course to be able to have optional java symbol agent
loaded into the jvm if the image is built with it.

Signed-off-by: Calle Wilund <calle@cloudius-systems.com>
Add callback registry for trace symbol resolution

Lets other code/modules hook in symbol dictionary callbacks, which
will be called on trace dump and the returned info included in the
binary dump.

Note, the symbol and module format has been slightly revised (see docs)
to make it more useful. Modules now include their size, and symbols
optionally include source and line number info.

Signed-off-by: Calle Wilund <calle@cloudius-systems.com>
Optional module to add JVM JIT symbol resolution to trace dumps

If loaded into the JVM, will register with symbol callback and generate
symbol entries for all JIT:ed code currently running.

Does not deal with interpreter or dead/unloaded code. Note that HS call
frames are RBP-walkable (i.e. works with OSv backtrace), so as long as
we are in JIT code, we will get at least some symbols almost for free.

Signed-off-by: Calle Wilund <calle@cloudius-systems.com>
Tracedump: Add public library symbols (exports) to dump symbol table

Demangle and append each library func/data export to the dump. Gives
slightly better backtraces in trace dumps.

Signed-off-by: Calle Wilund <calle@cloudius-systems.com>
hack

Conflicts:
	core/sched.cc
	drivers/virtio-net.cc
net: dedicate last CPU to virito-net-rx