apps: update for cassandra/jenkins integration

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
trace: do not attempt to read across the pivot page

This is an optimization. We first check if the entry is valid using
the 'tp' field and only if it is we try to read the rest.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
trace: encode and decode strings

Python3 became more restrictive with regards to string handling than
python2. In python3 strings no longer conform to byte array interface,
they have to be encoded explicitly. The current code throws exception
when run in python3.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: remove dead import

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: use "int" type instead of "long"

There is no difference between them in python2 and python3 no
longer has "long".

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: use print with parentheses

Needed by python3.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: create a wrapper for getting dict values

Python3 dicts do not have itervalues() or viewvalues(), they have values().

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: apply 2to3 fixes which work with both versions

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: strip \0 from thread_name in portable way

In python3 struct.unpack() returns bytes, not str, which
does not have rstrip().

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
gdb: concatenate trace_log in a generic way

The GDB which uses python3 returns memoryview object from
read_memory().  This class does not support + operator. I added a
concatenation wrapper which works with all indexable types.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
trace: fix command help

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
run.py: add --trace option

This option enables given tracepoint from the very beginning. This is
useful if you want to enable tracing but don't want to alter the
command line.

Before:

  run.py -e " --trace=... $(cat build/release/cmdline)"

After:

 run.py --trace=...

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
run.py: add --trace-backtrace option

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
trace: make 'prof' show all trace samples by default

Often profile has only one tracepoint, let's save users some typing by
showing all by default.

Before:

  trace prof -t sched_wait

After:

  trace prof

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
trace: auto-paginate output using less

Instead of:

  trace list | less

just do:

  trace list

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
trace: use "tracefile" by default

It is cumbersome to have to type "file" on every trace command. Let's
use "tracefile" by default.

Before:

 trace extract file
 trace summary file
 trace prof file

After:

 trace extract
 trace summary
 trace prof

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Merge branch 'master' into aarch64-next