.gitignore | 1 MAINTAINERS | 8 + Makefile | 8 + Makefile.objs | 4 + Makefile.target | 1 accel/stubs/tcg-stub.c | 3 accel/tcg/translate-all.c | 7 + bsd-user/main.c | 17 ++ bsd-user/syscall.c | 14 ++ configure | 13 ++ cpus-common.c | 9 + docs/instrument.txt | 173 ++++++++++++++++++++++ hmp-commands.hx | 32 ++++ include/exec/cpu_ldst_template.h | 19 +- include/exec/cpu_ldst_useronly_template.h | 19 +- include/exec/exec-all.h | 1 include/exec/helper-gen.h | 1 include/exec/helper-proto.h | 1 include/exec/helper-tcg.h | 1 include/qemu/compiler.h | 19 ++ instrument/Makefile.objs | 8 + instrument/cmdline.c | 128 ++++++++++++++++ instrument/cmdline.h | 51 +++++++ instrument/control.c | 227 +++++++++++++++++++++++++++++ instrument/control.h | 153 ++++++++++++++++++++ instrument/control.inc.h | 67 +++++++++ instrument/error.h | 34 ++++ instrument/events.h | 86 +++++++++++ instrument/events.inc.h | 109 ++++++++++++++ instrument/helpers.h | 2 instrument/load.c | 210 +++++++++++++++++++++++++++ instrument/load.h | 88 +++++++++++ instrument/qemu-instr/control.h | 177 +++++++++++++++++++++++ instrument/qemu-instr/state.h | 104 +++++++++++++ instrument/qemu-instr/types.h | 115 +++++++++++++++ instrument/qemu-instr/types.inc.h | 15 ++ instrument/qmp.c | 82 ++++++++++ instrument/state.c | 73 +++++++++ instrument/trace.c | 125 ++++++++++++++++ linux-user/main.c | 21 +++ linux-user/syscall.c | 7 + monitor.c | 43 +++++ qapi-schema.json | 3 qapi/instrument.json | 49 ++++++ qemu-options.hx | 19 ++ qom/cpu.c | 2 stubs/Makefile.objs | 1 stubs/instrument.c | 75 ++++++++++ tcg/tcg-op.c | 27 ++- trace/control-target.c | 2 trace/control.c | 4 - trace/control.h | 24 +++ trace/mem-internal.h | 22 ++- trace/mem.h | 8 + vl.c | 15 ++ 55 files changed, 2487 insertions(+), 40 deletions(-) create mode 100644 docs/instrument.txt create mode 100644 instrument/Makefile.objs create mode 100644 instrument/cmdline.c create mode 100644 instrument/cmdline.h create mode 100644 instrument/control.c create mode 100644 instrument/control.h create mode 100644 instrument/control.inc.h create mode 100644 instrument/error.h create mode 100644 instrument/events.h create mode 100644 instrument/events.inc.h create mode 100644 instrument/helpers.h create mode 100644 instrument/load.c create mode 100644 instrument/load.h create mode 100644 instrument/qemu-instr/control.h create mode 100644 instrument/qemu-instr/state.h create mode 100644 instrument/qemu-instr/types.h create mode 100644 instrument/qemu-instr/types.inc.h create mode 100644 instrument/qmp.c create mode 100644 instrument/state.c create mode 100644 instrument/trace.c create mode 100644 qapi/instrument.json create mode 100644 stubs/instrument.c
This series adds an API to add instrumentation events.
It also provides additional APIs for:
* Controlling tracing events.
* Peek/poke guest memory.
TODO:
* Replace qi_event_gen_* with generating calls to arbitrary functions (e.g.,
qi_event_gen_call(num_args, va_list)).
* Flush all TBs when an execution-time event is unset (to ensure it won't be
called in the future).
* Flush all TBs when a translation-time event is set (to ensure no future events
will be lost).
Undecided:
* Alternatively to the two last points above, provide an API to request a TB
flush (much more flexible and can be more efficient, but requires instrumentor
to clearly know differences between translation and execution).
* Pass a user-provided pointer to events (i.e., to avoid using global
variables).
* Provide something like tracing's per-vCPU trace states (i.e., so that each
vCPU can have different instrumentation code). Useful mainly for sampling
(enable/disable instrumentation multiple times without re-translating guest
code) and more complex use cases like tracing a guest process in softmmu mode.
It's still not clear to me if we should extend the per-vCPU bitmap with
instrumentation events, or otherwise somehow reuse the bits in tracing events
(since they're currently limited).
* Allow multiple callbacks per event (both to support multiple callbacks
installed by a library, and multiple libraries at the same time).
* Allow instr libraries to iterate on the list of guest CPUs (info is already
available through guest_cpu_enter/guest_cpu_exit, but forces libs to be
prepared for hot-plugging guest CPUs).
Future APIs (for later series):
* Peek/poke guest registers.
* Add breakpoints to trigger instrumentation functions.
* Trigger instrumentation functions from guest code (former hypertrace).
* Add events for guest code translation/execution (once the respective tracing
events are accepted upstream).
* Add events for exceptions/syscalls.
* Add events for TB invalidation (necessary for libraries to deallocate any data
they might have allocated for the TBs they instrumented).
The instrumentation code is dynamically loaded as a library into QEMU either
when it starts or later using its remote control interfaces. The loaded code
only has access to function explicitly exported through the QI_VPUBLIC macro.
This series is branch 'devel-instrument' in
https://code.gso.ac.upc.edu/git/qemu-dbi.
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
Changes in v5
=============
* Rebase on fcea73709b.
* Minor changes to pass checkpatch.
* Fix symbol availability to external libraries by adding missing default symbol
visibility flag.
* Use a string to identify instrumentation handles [Markus Armbruster].
* Use stubs for command line initialization.
* Use stubs to signal unsupported QAPI commands [Markus Armbruster].
* Use error messages instead of codes in QAPI commands [Markus Armbruster].
* Move symbol visibility macros to internal "qemu/compiler.h" header.
* Trigger event 'guest_cpu_enter' when library is loaded.
* Trigger event 'guest_cpu_exit' and flush TBs when library is unloaded.
* Rename instr_cpu_get/instr_cpu_set into clearer
instr_cpu_to_qicpu/instr_cpu_from_qicpu.
* Rename handle_get/handle_put to clearer handle_new/handle_destroy.
* Ensure qi_event_set_* are called only on the proper mode and targets.
Changes in v4
=============
* Add missing stub function.
Changes in v3
=============
* Use a separate event set for instrumentation (i.e., do not instrument tracing
events) [Stefan Hajnoczi].
* Add API for peek/poke guest memory.
Changes in v2
=============
* Update QEMU version in QAPI [Eric Blake].
* Clarify 'msg' result in QAPI is for humans only.
* Make 'msg' and 'handle' results optional in QAPI.
* Use a list of 'str' in 'instr-load' QAPI command.
* Update MAINTAINERS.
* Add macros for error-reporting in API.
Lluís Vilanova (22):
instrument: Add documentation
instrument: Add configure-time flag
instrument: Add generic library loader
instrument: [linux-user] Add command line library loader
instrument: [bsd-user] Add command line library loader
instrument: [softmmu] Add command line library loader
instrument: [qapi] Add library loader
instrument: [hmp] Add library loader
instrument: Add basic control interface
instrument: Add support for tracing events
instrument: Track vCPUs
instrument: Add event 'guest_cpu_enter'
instrument: Support synchronous modification of vCPU state
exec: Add function to synchronously flush TB on a stopped vCPU
instrument: Add event 'guest_cpu_exit'
instrument: Add event 'guest_cpu_reset'
trace: Introduce a proper structure to describe memory accesses
instrument: Add event 'guest_mem_before_trans'
instrument: Add event 'guest_mem_before_exec'
instrument: Add event 'guest_user_syscall'
instrument: Add event 'guest_user_syscall_ret'
instrument: Add API to manipulate guest memory
.gitignore | 1
MAINTAINERS | 8 +
Makefile | 8 +
Makefile.objs | 4 +
Makefile.target | 1
accel/stubs/tcg-stub.c | 3
accel/tcg/translate-all.c | 7 +
bsd-user/main.c | 17 ++
bsd-user/syscall.c | 14 ++
configure | 13 ++
cpus-common.c | 9 +
docs/instrument.txt | 173 ++++++++++++++++++++++
hmp-commands.hx | 32 ++++
include/exec/cpu_ldst_template.h | 19 +-
include/exec/cpu_ldst_useronly_template.h | 19 +-
include/exec/exec-all.h | 1
include/exec/helper-gen.h | 1
include/exec/helper-proto.h | 1
include/exec/helper-tcg.h | 1
include/qemu/compiler.h | 19 ++
instrument/Makefile.objs | 8 +
instrument/cmdline.c | 128 ++++++++++++++++
instrument/cmdline.h | 51 +++++++
instrument/control.c | 227 +++++++++++++++++++++++++++++
instrument/control.h | 153 ++++++++++++++++++++
instrument/control.inc.h | 67 +++++++++
instrument/error.h | 34 ++++
instrument/events.h | 86 +++++++++++
instrument/events.inc.h | 109 ++++++++++++++
instrument/helpers.h | 2
instrument/load.c | 210 +++++++++++++++++++++++++++
instrument/load.h | 88 +++++++++++
instrument/qemu-instr/control.h | 177 +++++++++++++++++++++++
instrument/qemu-instr/state.h | 104 +++++++++++++
instrument/qemu-instr/types.h | 115 +++++++++++++++
instrument/qemu-instr/types.inc.h | 15 ++
instrument/qmp.c | 82 ++++++++++
instrument/state.c | 73 +++++++++
instrument/trace.c | 125 ++++++++++++++++
linux-user/main.c | 21 +++
linux-user/syscall.c | 7 +
monitor.c | 43 +++++
qapi-schema.json | 3
qapi/instrument.json | 49 ++++++
qemu-options.hx | 19 ++
qom/cpu.c | 2
stubs/Makefile.objs | 1
stubs/instrument.c | 75 ++++++++++
tcg/tcg-op.c | 27 ++-
trace/control-target.c | 2
trace/control.c | 4 -
trace/control.h | 24 +++
trace/mem-internal.h | 22 ++-
trace/mem.h | 8 +
vl.c | 15 ++
55 files changed, 2487 insertions(+), 40 deletions(-)
create mode 100644 docs/instrument.txt
create mode 100644 instrument/Makefile.objs
create mode 100644 instrument/cmdline.c
create mode 100644 instrument/cmdline.h
create mode 100644 instrument/control.c
create mode 100644 instrument/control.h
create mode 100644 instrument/control.inc.h
create mode 100644 instrument/error.h
create mode 100644 instrument/events.h
create mode 100644 instrument/events.inc.h
create mode 100644 instrument/helpers.h
create mode 100644 instrument/load.c
create mode 100644 instrument/load.h
create mode 100644 instrument/qemu-instr/control.h
create mode 100644 instrument/qemu-instr/state.h
create mode 100644 instrument/qemu-instr/types.h
create mode 100644 instrument/qemu-instr/types.inc.h
create mode 100644 instrument/qmp.c
create mode 100644 instrument/state.c
create mode 100644 instrument/trace.c
create mode 100644 qapi/instrument.json
create mode 100644 stubs/instrument.c
To: qemu-devel@nongnu.org
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Emilio G. Cota <cota@braap.org>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Hi,
This series seems to have some coding style problems. See output below for
more information:
Subject: [Qemu-devel] [PATCH v5 00/22] instrument: Add basic event instrumentation
Message-id: 150525010239.15988.8172586618197849619.stgit@frigg.lan
Type: series
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
* [new tag] patchew/150525010239.15988.8172586618197849619.stgit@frigg.lan -> patchew/150525010239.15988.8172586618197849619.stgit@frigg.lan
t [tag update] patchew/20170912144459.11359-1-pbonzini@redhat.com -> patchew/20170912144459.11359-1-pbonzini@redhat.com
Switched to a new branch 'test'
1ab48ae9b7 instrument: Add API to manipulate guest memory
7e0bd2cad7 instrument: Add event 'guest_user_syscall_ret'
334caef899 instrument: Add event 'guest_user_syscall'
09a1773791 instrument: Add event 'guest_mem_before_exec'
2bd64563d3 instrument: Add event 'guest_mem_before_trans'
5b344ec1c3 trace: Introduce a proper structure to describe memory accesses
04e5b883b1 instrument: Add event 'guest_cpu_reset'
7971d0f2a4 instrument: Add event 'guest_cpu_exit'
53dbc9ad88 exec: Add function to synchronously flush TB on a stopped vCPU
d8b51515d2 instrument: Support synchronous modification of vCPU state
08d492e35f instrument: Add event 'guest_cpu_enter'
0be52b1bbd instrument: Track vCPUs
7ab01f20f5 instrument: Add support for tracing events
78676cff2d instrument: Add basic control interface
00172972ae instrument: [hmp] Add library loader
34ccf831e6 instrument: [qapi] Add library loader
d1ab648b00 instrument: [softmmu] Add command line library loader
150ad4a651 instrument: [bsd-user] Add command line library loader
a064b1621a instrument: [linux-user] Add command line library loader
aa78ee9f5a instrument: Add generic library loader
f10357e313 instrument: Add configure-time flag
4d324ad619 instrument: Add documentation
=== OUTPUT BEGIN ===
Checking PATCH 1/22: instrument: Add documentation...
Checking PATCH 2/22: instrument: Add configure-time flag...
Checking PATCH 3/22: instrument: Add generic library loader...
Checking PATCH 4/22: instrument: [linux-user] Add command line library loader...
Checking PATCH 5/22: instrument: [bsd-user] Add command line library loader...
Checking PATCH 6/22: instrument: [softmmu] Add command line library loader...
Checking PATCH 7/22: instrument: [qapi] Add library loader...
ERROR: externs should be avoided in .c files
#254: FILE: stubs/instrument.c:40:
+void qmp_instr_unload(const char *id, Error **errp);
total: 1 errors, 0 warnings, 204 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 8/22: instrument: [hmp] Add library loader...
Checking PATCH 9/22: instrument: Add basic control interface...
WARNING: architecture specific defines should be avoided
#52: FILE: include/qemu/compiler.h:119:
+#if defined _WIN32 || defined __CYGWIN__
WARNING: architecture specific defines should be avoided
#53: FILE: include/qemu/compiler.h:120:
+ #ifdef __GNUC__
WARNING: architecture specific defines should be avoided
#59: FILE: include/qemu/compiler.h:126:
+ #if __GNUC__ >= 4
WARNING: architecture specific defines should be avoided
#343: FILE: instrument/qemu-instr/control.h:13:
+#ifdef __cplusplus
WARNING: architecture specific defines should be avoided
#372: FILE: instrument/qemu-instr/control.h:42:
+#ifdef __cplusplus
total: 0 errors, 5 warnings, 309 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 10/22: instrument: Add support for tracing events...
WARNING: architecture specific defines should be avoided
#77: FILE: instrument/qemu-instr/types.h:13:
+#ifdef __cplusplus
WARNING: architecture specific defines should be avoided
#111: FILE: instrument/qemu-instr/types.h:47:
+#ifdef __cplusplus
total: 0 errors, 2 warnings, 225 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 11/22: instrument: Track vCPUs...
Checking PATCH 12/22: instrument: Add event 'guest_cpu_enter'...
Checking PATCH 13/22: instrument: Support synchronous modification of vCPU state...
WARNING: line over 80 characters
#73: FILE: instrument/control.c:85:
+ async_run_on_cpu(cpu, instr_cpu_stop_all__cb, RUN_ON_CPU_HOST_PTR(info));
total: 0 errors, 1 warnings, 127 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 14/22: exec: Add function to synchronously flush TB on a stopped vCPU...
Checking PATCH 15/22: instrument: Add event 'guest_cpu_exit'...
Checking PATCH 16/22: instrument: Add event 'guest_cpu_reset'...
Checking PATCH 17/22: trace: Introduce a proper structure to describe memory accesses...
ERROR: spaces prohibited around that ':' (ctx:WxW)
#244: FILE: trace/mem.h:29:
+ uint8_t size_shift : 2;
^
ERROR: spaces prohibited around that ':' (ctx:VxW)
#245: FILE: trace/mem.h:30:
+ bool sign_extend: 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#246: FILE: trace/mem.h:31:
+ uint8_t endianness : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#247: FILE: trace/mem.h:32:
+ bool store : 1;
^
total: 4 errors, 0 warnings, 227 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 18/22: instrument: Add event 'guest_mem_before_trans'...
ERROR: spaces prohibited around that ':' (ctx:WxW)
#302: FILE: instrument/qemu-instr/types.h:64:
+ uint8_t size_shift : 2;
^
ERROR: spaces prohibited around that ':' (ctx:VxW)
#303: FILE: instrument/qemu-instr/types.h:65:
+ bool sign_extend: 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#304: FILE: instrument/qemu-instr/types.h:66:
+ uint8_t endianness : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#305: FILE: instrument/qemu-instr/types.h:67:
+ bool store : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#430: FILE: trace/control.h:37:
+ uint8_t size_shift : 2;
^
ERROR: spaces prohibited around that ':' (ctx:VxW)
#431: FILE: trace/control.h:38:
+ bool sign_extend: 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#432: FILE: trace/control.h:39:
+ uint8_t endianness : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#433: FILE: trace/control.h:40:
+ bool store : 1;
^
total: 8 errors, 0 warnings, 389 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 19/22: instrument: Add event 'guest_mem_before_exec'...
ERROR: externs should be avoided in .c files
#337: FILE: stubs/instrument.c:61:
+void helper_instr_guest_mem_before_exec(
total: 1 errors, 0 warnings, 258 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 20/22: instrument: Add event 'guest_user_syscall'...
Checking PATCH 21/22: instrument: Add event 'guest_user_syscall_ret'...
Checking PATCH 22/22: instrument: Add API to manipulate guest memory...
WARNING: architecture specific defines should be avoided
#41: FILE: instrument/qemu-instr/state.h:13:
+#ifdef __cplusplus
WARNING: architecture specific defines should be avoided
#128: FILE: instrument/qemu-instr/state.h:100:
+#ifdef __cplusplus
total: 0 errors, 2 warnings, 181 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
no-reply writes: > Hi, > This series seems to have some coding style problems. See output below for > more information: > Subject: [Qemu-devel] [PATCH v5 00/22] instrument: Add basic event instrumentation > Message-id: 150525010239.15988.8172586618197849619.stgit@frigg.lan > Type: series > === TEST SCRIPT BEGIN === > #!/bin/bash > BASE=base > n=1 > total=$(git log --oneline $BASE.. | wc -l) > failed=0 > git config --local diff.renamelimit 0 > git config --local diff.renames True > commits="$(git log --format=%H --reverse $BASE..)" > for c in $commits; do > echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..." > if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then > failed=1 > echo > fi > n=$((n+1)) > done > exit $failed > === TEST SCRIPT END === > Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 > From https://github.com/patchew-project/qemu > * [new tag] patchew/150525010239.15988.8172586618197849619.stgit@frigg.lan -> patchew/150525010239.15988.8172586618197849619.stgit@frigg.lan > t [tag update] patchew/20170912144459.11359-1-pbonzini@redhat.com -> patchew/20170912144459.11359-1-pbonzini@redhat.com > Switched to a new branch 'test' > 1ab48ae9b7 instrument: Add API to manipulate guest memory > 7e0bd2cad7 instrument: Add event 'guest_user_syscall_ret' > 334caef899 instrument: Add event 'guest_user_syscall' > 09a1773791 instrument: Add event 'guest_mem_before_exec' > 2bd64563d3 instrument: Add event 'guest_mem_before_trans' > 5b344ec1c3 trace: Introduce a proper structure to describe memory accesses > 04e5b883b1 instrument: Add event 'guest_cpu_reset' > 7971d0f2a4 instrument: Add event 'guest_cpu_exit' > 53dbc9ad88 exec: Add function to synchronously flush TB on a stopped vCPU > d8b51515d2 instrument: Support synchronous modification of vCPU state > 08d492e35f instrument: Add event 'guest_cpu_enter' > 0be52b1bbd instrument: Track vCPUs > 7ab01f20f5 instrument: Add support for tracing events > 78676cff2d instrument: Add basic control interface > 00172972ae instrument: [hmp] Add library loader > 34ccf831e6 instrument: [qapi] Add library loader > d1ab648b00 instrument: [softmmu] Add command line library loader > 150ad4a651 instrument: [bsd-user] Add command line library loader > a064b1621a instrument: [linux-user] Add command line library loader > aa78ee9f5a instrument: Add generic library loader > f10357e313 instrument: Add configure-time flag > 4d324ad619 instrument: Add documentation > === OUTPUT BEGIN === > Checking PATCH 1/22: instrument: Add documentation... > Checking PATCH 2/22: instrument: Add configure-time flag... > Checking PATCH 3/22: instrument: Add generic library loader... > Checking PATCH 4/22: instrument: [linux-user] Add command line library loader... > Checking PATCH 5/22: instrument: [bsd-user] Add command line library loader... > Checking PATCH 6/22: instrument: [softmmu] Add command line library loader... > Checking PATCH 7/22: instrument: [qapi] Add library loader... > ERROR: externs should be avoided in .c files > #254: FILE: stubs/instrument.c:40: > +void qmp_instr_unload(const char *id, Error **errp); > total: 1 errors, 0 warnings, 204 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 8/22: instrument: [hmp] Add library loader... > Checking PATCH 9/22: instrument: Add basic control interface... > WARNING: architecture specific defines should be avoided > #52: FILE: include/qemu/compiler.h:119: > +#if defined _WIN32 || defined __CYGWIN__ > WARNING: architecture specific defines should be avoided > #53: FILE: include/qemu/compiler.h:120: > + #ifdef __GNUC__ > WARNING: architecture specific defines should be avoided > #59: FILE: include/qemu/compiler.h:126: > + #if __GNUC__ >= 4 > WARNING: architecture specific defines should be avoided > #343: FILE: instrument/qemu-instr/control.h:13: > +#ifdef __cplusplus > WARNING: architecture specific defines should be avoided > #372: FILE: instrument/qemu-instr/control.h:42: > +#ifdef __cplusplus > total: 0 errors, 5 warnings, 309 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 10/22: instrument: Add support for tracing events... > WARNING: architecture specific defines should be avoided > #77: FILE: instrument/qemu-instr/types.h:13: > +#ifdef __cplusplus > WARNING: architecture specific defines should be avoided > #111: FILE: instrument/qemu-instr/types.h:47: > +#ifdef __cplusplus > total: 0 errors, 2 warnings, 225 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 11/22: instrument: Track vCPUs... > Checking PATCH 12/22: instrument: Add event 'guest_cpu_enter'... > Checking PATCH 13/22: instrument: Support synchronous modification of vCPU state... > WARNING: line over 80 characters > #73: FILE: instrument/control.c:85: > + async_run_on_cpu(cpu, instr_cpu_stop_all__cb, RUN_ON_CPU_HOST_PTR(info)); Fixed in next series. All above are false positives. > total: 0 errors, 1 warnings, 127 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 14/22: exec: Add function to synchronously flush TB on a stopped vCPU... > Checking PATCH 15/22: instrument: Add event 'guest_cpu_exit'... > Checking PATCH 16/22: instrument: Add event 'guest_cpu_reset'... > Checking PATCH 17/22: trace: Introduce a proper structure to describe memory accesses... > ERROR: spaces prohibited around that ':' (ctx:WxW) > #244: FILE: trace/mem.h:29: > + uint8_t size_shift : 2; > ^ > ERROR: spaces prohibited around that ':' (ctx:VxW) > #245: FILE: trace/mem.h:30: > + bool sign_extend: 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #246: FILE: trace/mem.h:31: > + uint8_t endianness : 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #247: FILE: trace/mem.h:32: > + bool store : 1; > ^ > total: 4 errors, 0 warnings, 227 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 18/22: instrument: Add event 'guest_mem_before_trans'... > ERROR: spaces prohibited around that ':' (ctx:WxW) > #302: FILE: instrument/qemu-instr/types.h:64: > + uint8_t size_shift : 2; > ^ > ERROR: spaces prohibited around that ':' (ctx:VxW) > #303: FILE: instrument/qemu-instr/types.h:65: > + bool sign_extend: 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #304: FILE: instrument/qemu-instr/types.h:66: > + uint8_t endianness : 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #305: FILE: instrument/qemu-instr/types.h:67: > + bool store : 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #430: FILE: trace/control.h:37: > + uint8_t size_shift : 2; > ^ > ERROR: spaces prohibited around that ':' (ctx:VxW) > #431: FILE: trace/control.h:38: > + bool sign_extend: 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #432: FILE: trace/control.h:39: > + uint8_t endianness : 1; > ^ > ERROR: spaces prohibited around that ':' (ctx:WxW) > #433: FILE: trace/control.h:40: > + bool store : 1; > ^ Ignoring; these keep field lengths nicely aligned. > total: 8 errors, 0 warnings, 389 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 19/22: instrument: Add event 'guest_mem_before_exec'... > ERROR: externs should be avoided in .c files > #337: FILE: stubs/instrument.c:61: > +void helper_instr_guest_mem_before_exec( False positive. Cannot include the proper helper headers on the stub file. > total: 1 errors, 0 warnings, 258 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > Checking PATCH 20/22: instrument: Add event 'guest_user_syscall'... > Checking PATCH 21/22: instrument: Add event 'guest_user_syscall_ret'... > Checking PATCH 22/22: instrument: Add API to manipulate guest memory... > WARNING: architecture specific defines should be avoided > #41: FILE: instrument/qemu-instr/state.h:13: > +#ifdef __cplusplus > WARNING: architecture specific defines should be avoided > #128: FILE: instrument/qemu-instr/state.h:100: > +#ifdef __cplusplus > total: 0 errors, 2 warnings, 181 lines checked > Your patch has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > === OUTPUT END === > Test command exited with code: 1 More false positives. Thanks, Lluis
On 12 September 2017 at 22:01, Lluís Vilanova <vilanova@ac.upc.edu> wrote: > This series adds an API to add instrumentation events. > > It also provides additional APIs for: > * Controlling tracing events. > * Peek/poke guest memory. > Future APIs (for later series): > * Peek/poke guest registers. > * Add breakpoints to trigger instrumentation functions. > * Trigger instrumentation functions from guest code (former hypertrace). > * Add events for guest code translation/execution (once the respective tracing > events are accepted upstream). > * Add events for exceptions/syscalls. > * Add events for TB invalidation (necessary for libraries to deallocate any data > they might have allocated for the TBs they instrumented). > > The instrumentation code is dynamically loaded as a library into QEMU either > when it starts or later using its remote control interfaces. The loaded code > only has access to function explicitly exported through the QI_VPUBLIC macro. > > This series is branch 'devel-instrument' in > https://code.gso.ac.upc.edu/git/qemu-dbi. To parallel the comment I sent on Emilio's series: I think the first thing we should do here is work out the API we want to present to the instrumentation plugin, because that's permanent and we want to get it right. Then we can figure out the implementation details later. Particular notes: * putting things in the instrumentation plugin API that basically parallel some existing trace points is something I'm wary of, because a lot of our existing tracing is "output something at a point and in a way that's convenient for our internal implementation", rather than "what is the right clean interface to provide this sort of information". I'd rather we started with a blank piece of paper and designed an API, and then implemented it. * I definitely don't think we should expose to the instrumentation the distinction between translate time and execute time thanks -- PMM
Peter Maydell writes: > On 12 September 2017 at 22:01, Lluís Vilanova <vilanova@ac.upc.edu> wrote: >> This series adds an API to add instrumentation events. >> >> It also provides additional APIs for: >> * Controlling tracing events. >> * Peek/poke guest memory. >> Future APIs (for later series): >> * Peek/poke guest registers. >> * Add breakpoints to trigger instrumentation functions. >> * Trigger instrumentation functions from guest code (former hypertrace). >> * Add events for guest code translation/execution (once the respective tracing >> events are accepted upstream). >> * Add events for exceptions/syscalls. >> * Add events for TB invalidation (necessary for libraries to deallocate any data >> they might have allocated for the TBs they instrumented). >> >> The instrumentation code is dynamically loaded as a library into QEMU either >> when it starts or later using its remote control interfaces. The loaded code >> only has access to function explicitly exported through the QI_VPUBLIC macro. >> >> This series is branch 'devel-instrument' in >> https://code.gso.ac.upc.edu/git/qemu-dbi. > To parallel the comment I sent on Emilio's series: I think the > first thing we should do here is work out the API we want to > present to the instrumentation plugin, because that's permanent > and we want to get it right. Then we can figure out the > implementation details later. > Particular notes: > * putting things in the instrumentation plugin API that basically > parallel some existing trace points is something I'm wary of, > because a lot of our existing tracing is "output something at > a point and in a way that's convenient for our internal > implementation", rather than "what is the right clean interface > to provide this sort of information". I'd rather we started > with a blank piece of paper and designed an API, and then > implemented it. Do you have an opinion on specific trace points, or an observation in general? I wanted to have the following events: * cpu hotplug/hotunplug * cpu reset * memory access translation/execution * BBL/TB translation/execution * instruction translation/execution * exceptions / syscalls > * I definitely don't think we should expose to the instrumentation > the distinction between translate time and execute time Please see my response to your email in v6. Also, I forgot an even simpler case, like instrumenting a subset of memory accesses (e.g., only writes). Thanks, Lluis
On 15 September 2017 at 14:45, Lluís Vilanova <vilanova@ac.upc.edu> wrote: > Do you have an opinion on specific trace points, or an observation in general? > > I wanted to have the following events: > > * cpu hotplug/hotunplug > * cpu reset > * memory access translation/execution > * BBL/TB translation/execution > * instruction translation/execution > * exceptions / syscalls My initial stab at a "basic" set of events would be: * instruction executes * memory accesses * exceptions But the better approach would probably be to survey the existing trace APIs in other models. thanks -- PMM
Hi,
This series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.
Subject: [Qemu-devel] [PATCH v5 00/22] instrument: Add basic event instrumentation
Message-id: 150525010239.15988.8172586618197849619.stgit@frigg.lan
Type: series
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
time make docker-test-build@min-glib
time make docker-test-mingw@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
1ab48ae9b7 instrument: Add API to manipulate guest memory
7e0bd2cad7 instrument: Add event 'guest_user_syscall_ret'
334caef899 instrument: Add event 'guest_user_syscall'
09a1773791 instrument: Add event 'guest_mem_before_exec'
2bd64563d3 instrument: Add event 'guest_mem_before_trans'
5b344ec1c3 trace: Introduce a proper structure to describe memory accesses
04e5b883b1 instrument: Add event 'guest_cpu_reset'
7971d0f2a4 instrument: Add event 'guest_cpu_exit'
53dbc9ad88 exec: Add function to synchronously flush TB on a stopped vCPU
d8b51515d2 instrument: Support synchronous modification of vCPU state
08d492e35f instrument: Add event 'guest_cpu_enter'
0be52b1bbd instrument: Track vCPUs
7ab01f20f5 instrument: Add support for tracing events
78676cff2d instrument: Add basic control interface
00172972ae instrument: [hmp] Add library loader
34ccf831e6 instrument: [qapi] Add library loader
d1ab648b00 instrument: [softmmu] Add command line library loader
150ad4a651 instrument: [bsd-user] Add command line library loader
a064b1621a instrument: [linux-user] Add command line library loader
aa78ee9f5a instrument: Add generic library loader
f10357e313 instrument: Add configure-time flag
4d324ad619 instrument: Add documentation
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-lf5qg9x6/src/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
BUILD centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-lf5qg9x6/src'
ARCHIVE qemu.tgz
ARCHIVE dtc.tgz
COPY RUNNER
RUN test-quick in qemu:centos6
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
bison-2.4.1-5.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
ccache-3.1.6-2.el6.x86_64
csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64
flex-2.5.35-9.el6.x86_64
gcc-4.4.7-18.el6.x86_64
git-1.7.1-8.el6.x86_64
glib2-devel-2.28.8-9.el6.x86_64
libepoxy-devel-1.2-3.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
librdmacm-devel-1.0.21-0.el6.x86_64
lzo-devel-2.03-3.1.el6_5.1.x86_64
make-3.81-23.el6.x86_64
mesa-libEGL-devel-11.0.7-4.el6.x86_64
mesa-libgbm-devel-11.0.7-4.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
spice-glib-devel-0.26-8.el6.x86_64
spice-server-devel-0.12.4-16.el6.x86_64
tar-1.23-15.el6_8.x86_64
vte-devel-0.25.1-9.el6.x86_64
xen-devel-4.6.3-15.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
Environment variables:
PACKAGES=bison bzip2-devel ccache csnappy-devel flex g++ gcc git glib2-devel libepoxy-devel libfdt-devel librdmacm-devel lzo-devel make mesa-libEGL-devel mesa-libgbm-devel pixman-devel SDL-devel spice-glib-devel spice-server-devel tar vte-devel xen-devel zlib-devel
HOSTNAME=fd698ce7a83b
TERM=xterm
MAKEFLAGS= -j8
HISTSIZE=1000
J=8
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
MAIL=/var/spool/mail/root
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
LANG=en_US.UTF-8
TARGET_LIST=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
FEATURES= dtc
DEBUG=
G_BROKEN_FILENAMES=1
CCACHE_HASHDIR=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install
No C++ compiler available; disabling C++ specific optional code
Install prefix /var/tmp/qemu-build/install
BIOS directory /var/tmp/qemu-build/install/share/qemu
binary directory /var/tmp/qemu-build/install/bin
library directory /var/tmp/qemu-build/install/lib
module directory /var/tmp/qemu-build/install/lib/qemu
libexec directory /var/tmp/qemu-build/install/libexec
include directory /var/tmp/qemu-build/install/include
config directory /var/tmp/qemu-build/install/etc
local state directory /var/tmp/qemu-build/install/var
Manual directory /var/tmp/qemu-build/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/qemu-test/src
C compiler cc
Host C compiler cc
C++ compiler
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1 -I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
pixman system
SDL support yes (1.2.14)
GTK support yes (2.24.23)
GTK GL support no
VTE support yes (0.25.1)
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support yes
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support yes
xen ctrl version 40600
pv dom build no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
RDMA support yes
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
instrumentation no
spice support yes (0.12.6/0.12.4)
rbd support no
xfsctl support no
smartcard support yes
libusb no
usb net redir no
OpenGL support yes
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support no
bzip2 support yes
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
mkdir -p dtc/libfdt
mkdir -p dtc/tests
GEN aarch64-softmmu/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN aarch64-softmmu/config-devices.mak
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/treesource.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qmp-marshal.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-commands.h
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/instrument.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
/tmp/qemu-test/src/stubs/instrument.c:22: error: redefinition of typedef ‘strList’
./qapi-types.h:131: note: previous declaration of ‘strList’ was here
CC stubs/runstate-check.o
make: *** [stubs/instrument.o] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "./tests/docker/docker.py", line 384, in <module>
sys.exit(main())
File "./tests/docker/docker.py", line 381, in main
return args.cmdobj.run(args, argv)
File "./tests/docker/docker.py", line 239, in run
return Docker().run(argv, args.keep, quiet=args.quiet)
File "./tests/docker/docker.py", line 207, in run
quiet=quiet)
File "./tests/docker/docker.py", line 125, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=9670c49e980a11e7950952540069c830', '-u', '0', '-t', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/var/tmp/patchew-tester-tmp-lf5qg9x6/src/docker-src.2017-09-12-18.34.46.13887:/var/tmp/qemu:z,ro', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2
make[1]: *** [tests/docker/Makefile.include:139: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-lf5qg9x6/src'
make: *** [tests/docker/Makefile.include:168: docker-run-test-quick@centos6] Error 2
real 1m25.085s
user 0m5.300s
sys 0m1.695s
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
no-reply writes: > Hi, > This series failed automatic build test. Please find the testing commands and > their output below. If you have docker installed, you can probably reproduce it > locally. > Subject: [Qemu-devel] [PATCH v5 00/22] instrument: Add basic event instrumentation > Message-id: 150525010239.15988.8172586618197849619.stgit@frigg.lan > Type: series > === TEST SCRIPT BEGIN === > #!/bin/bash > set -e > git submodule update --init dtc > # Let docker tests dump environment info > export SHOW_ENV=1 > export J=8 > time make docker-test-quick@centos6 > time make docker-test-build@min-glib > time make docker-test-mingw@fedora > === TEST SCRIPT END === > Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 > Switched to a new branch 'test' > 1ab48ae9b7 instrument: Add API to manipulate guest memory > 7e0bd2cad7 instrument: Add event 'guest_user_syscall_ret' > 334caef899 instrument: Add event 'guest_user_syscall' > 09a1773791 instrument: Add event 'guest_mem_before_exec' > 2bd64563d3 instrument: Add event 'guest_mem_before_trans' > 5b344ec1c3 trace: Introduce a proper structure to describe memory accesses > 04e5b883b1 instrument: Add event 'guest_cpu_reset' > 7971d0f2a4 instrument: Add event 'guest_cpu_exit' > 53dbc9ad88 exec: Add function to synchronously flush TB on a stopped vCPU > d8b51515d2 instrument: Support synchronous modification of vCPU state > 08d492e35f instrument: Add event 'guest_cpu_enter' > 0be52b1bbd instrument: Track vCPUs > 7ab01f20f5 instrument: Add support for tracing events > 78676cff2d instrument: Add basic control interface > 00172972ae instrument: [hmp] Add library loader > 34ccf831e6 instrument: [qapi] Add library loader > d1ab648b00 instrument: [softmmu] Add command line library loader > 150ad4a651 instrument: [bsd-user] Add command line library loader > a064b1621a instrument: [linux-user] Add command line library loader > aa78ee9f5a instrument: Add generic library loader > f10357e313 instrument: Add configure-time flag > 4d324ad619 instrument: Add documentation > === OUTPUT BEGIN === > Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' > Cloning into '/var/tmp/patchew-tester-tmp-lf5qg9x6/src/dtc'... > Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d' > BUILD centos6 > make[1]: Entering directory '/var/tmp/patchew-tester-tmp-lf5qg9x6/src' > ARCHIVE qemu.tgz > ARCHIVE dtc.tgz > COPY RUNNER > RUN test-quick in qemu:centos6 > Packages installed: > SDL-devel-1.2.14-7.el6_7.1.x86_64 > bison-2.4.1-5.el6.x86_64 > bzip2-devel-1.0.5-7.el6_0.x86_64 > ccache-3.1.6-2.el6.x86_64 > csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64 > flex-2.5.35-9.el6.x86_64 > gcc-4.4.7-18.el6.x86_64 > git-1.7.1-8.el6.x86_64 > glib2-devel-2.28.8-9.el6.x86_64 > libepoxy-devel-1.2-3.el6.x86_64 > libfdt-devel-1.4.0-1.el6.x86_64 > librdmacm-devel-1.0.21-0.el6.x86_64 > lzo-devel-2.03-3.1.el6_5.1.x86_64 > make-3.81-23.el6.x86_64 > mesa-libEGL-devel-11.0.7-4.el6.x86_64 > mesa-libgbm-devel-11.0.7-4.el6.x86_64 > package g++ is not installed > pixman-devel-0.32.8-1.el6.x86_64 > spice-glib-devel-0.26-8.el6.x86_64 > spice-server-devel-0.12.4-16.el6.x86_64 > tar-1.23-15.el6_8.x86_64 > vte-devel-0.25.1-9.el6.x86_64 > xen-devel-4.6.3-15.el6.x86_64 > zlib-devel-1.2.3-29.el6.x86_64 > Environment variables: > PACKAGES=bison bzip2-devel ccache csnappy-devel flex g++ gcc git glib2-devel libepoxy-devel libfdt-devel librdmacm-devel lzo-devel make mesa-libEGL-devel mesa-libgbm-devel pixman-devel SDL-devel spice-glib-devel spice-server-devel tar vte-devel xen-devel zlib-devel > HOSTNAME=fd698ce7a83b > TERM=xterm > MAKEFLAGS= -j8 > HISTSIZE=1000 > J=8 > USER=root > LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36: > CCACHE_DIR=/var/tmp/ccache > EXTRA_CONFIGURE_OPTS= > V= > SHOW_ENV=1 > MAIL=/var/spool/mail/root > PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin > PWD=/ > LANG=en_US.UTF-8 > TARGET_LIST= > HISTCONTROL=ignoredups > SHLVL=1 > HOME=/root > TEST_DIR=/tmp/qemu-test > LOGNAME=root > LESSOPEN=||/usr/bin/lesspipe.sh %s > FEATURES= dtc > DEBUG= > G_BROKEN_FILENAMES=1 > CCACHE_HASHDIR= > _=/usr/bin/env > Configure options: > --enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install > No C++ compiler available; disabling C++ specific optional code > Install prefix /var/tmp/qemu-build/install > BIOS directory /var/tmp/qemu-build/install/share/qemu > binary directory /var/tmp/qemu-build/install/bin > library directory /var/tmp/qemu-build/install/lib > module directory /var/tmp/qemu-build/install/lib/qemu > libexec directory /var/tmp/qemu-build/install/libexec > include directory /var/tmp/qemu-build/install/include > config directory /var/tmp/qemu-build/install/etc > local state directory /var/tmp/qemu-build/install/var > Manual directory /var/tmp/qemu-build/install/share/man > ELF interp prefix /usr/gnemul/qemu-%M > Source path /tmp/qemu-test/src > C compiler cc > Host C compiler cc > C++ compiler > Objective-C compiler cc > ARFLAGS rv > CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g > QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1 -I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4 > LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g > make make > install install > python python -B > smbd /usr/sbin/smbd > module support no > host CPU x86_64 > host big endian no > target list x86_64-softmmu aarch64-softmmu > gprof enabled no > sparse enabled no > strip binaries yes > profiler no > static build no > pixman system > SDL support yes (1.2.14) > GTK support yes (2.24.23) > GTK GL support no > VTE support yes (0.25.1) > TLS priority NORMAL > GNUTLS support no > GNUTLS rnd no > libgcrypt no > libgcrypt kdf no > nettle no > nettle kdf no > libtasn1 no > curses support yes > virgl support no > curl support no > mingw32 support no > Audio drivers oss > Block whitelist (rw) > Block whitelist (ro) > VirtFS support no > VNC support yes > VNC SASL support no > VNC JPEG support yes > VNC PNG support yes > xen support yes > xen ctrl version 40600 > pv dom build no > brlapi support no > bluez support no > Documentation no > PIE yes > vde support no > netmap support no > Linux AIO support no > ATTR/XATTR support yes > Install blobs yes > KVM support yes > HAX support no > TCG support yes > TCG debug enabled no > TCG interpreter no > RDMA support yes > fdt support yes > preadv support yes > fdatasync yes > madvise yes > posix_madvise yes > libcap-ng support no > vhost-net support yes > vhost-scsi support yes > vhost-vsock support yes > vhost-user support yes > Trace backends log > instrumentation no > spice support yes (0.12.6/0.12.4) > rbd support no > xfsctl support no > smartcard support yes > libusb no > usb net redir no > OpenGL support yes > OpenGL dmabufs no > libiscsi support no > libnfs support no > build guest agent yes > QGA VSS support no > QGA w32 disk info no > QGA MSI support no > seccomp support no > coroutine backend ucontext > coroutine pool yes > debug stack usage no > crypto afalg no > GlusterFS support no > gcov gcov > gcov enabled no > TPM support yes > libssh2 support no > TPM passthrough yes > QOM debugging yes > Live block migration yes > lzo support yes > snappy support no > bzip2 support yes > NUMA host support no > tcmalloc support no > jemalloc support no > avx2 optimization no > replication support yes > VxHS block device no > mkdir -p dtc/libfdt > mkdir -p dtc/tests > GEN aarch64-softmmu/config-devices.mak.tmp > GEN x86_64-softmmu/config-devices.mak.tmp > GEN config-host.h > GEN qemu-options.def > GEN qmp-commands.h > GEN qapi-types.h > GEN qapi-visit.h > GEN qapi-event.h > GEN x86_64-softmmu/config-devices.mak > GEN qmp-marshal.c > GEN aarch64-softmmu/config-devices.mak > GEN qapi-types.c > GEN qapi-visit.c > GEN qapi-event.c > GEN qmp-introspect.h > GEN qmp-introspect.c > GEN trace/generated-tcg-tracers.h > GEN trace/generated-helpers-wrappers.h > GEN trace/generated-helpers.h > GEN trace/generated-helpers.c > GEN module_block.h > GEN tests/test-qapi-types.h > GEN tests/test-qapi-visit.h > GEN tests/test-qmp-commands.h > GEN tests/test-qapi-event.h > GEN tests/test-qmp-introspect.h > GEN trace-root.h > GEN util/trace.h > GEN crypto/trace.h > GEN io/trace.h > GEN migration/trace.h > GEN block/trace.h > GEN chardev/trace.h > GEN hw/block/trace.h > GEN hw/block/dataplane/trace.h > GEN hw/char/trace.h > GEN hw/intc/trace.h > GEN hw/net/trace.h > GEN hw/virtio/trace.h > GEN hw/audio/trace.h > GEN hw/misc/trace.h > GEN hw/usb/trace.h > GEN hw/scsi/trace.h > GEN hw/nvram/trace.h > GEN hw/display/trace.h > GEN hw/input/trace.h > GEN hw/timer/trace.h > GEN hw/dma/trace.h > GEN hw/sparc/trace.h > GEN hw/sd/trace.h > GEN hw/isa/trace.h > GEN hw/mem/trace.h > GEN hw/i386/trace.h > GEN hw/i386/xen/trace.h > GEN hw/9pfs/trace.h > GEN hw/ppc/trace.h > GEN hw/pci/trace.h > GEN hw/s390x/trace.h > GEN hw/vfio/trace.h > GEN hw/acpi/trace.h > GEN hw/arm/trace.h > GEN hw/alpha/trace.h > GEN hw/xen/trace.h > GEN ui/trace.h > GEN audio/trace.h > GEN net/trace.h > GEN target/arm/trace.h > GEN target/i386/trace.h > GEN target/mips/trace.h > GEN target/sparc/trace.h > GEN target/s390x/trace.h > GEN target/ppc/trace.h > GEN qom/trace.h > GEN linux-user/trace.h > GEN qapi/trace.h > GEN accel/tcg/trace.h > GEN accel/kvm/trace.h > GEN nbd/trace.h > GEN trace-root.c > GEN util/trace.c > GEN crypto/trace.c > GEN io/trace.c > GEN migration/trace.c > GEN block/trace.c > GEN chardev/trace.c > GEN hw/block/trace.c > GEN hw/block/dataplane/trace.c > GEN hw/char/trace.c > GEN hw/intc/trace.c > GEN hw/net/trace.c > GEN hw/virtio/trace.c > GEN hw/audio/trace.c > GEN hw/misc/trace.c > GEN hw/usb/trace.c > GEN hw/scsi/trace.c > GEN hw/nvram/trace.c > GEN hw/display/trace.c > GEN hw/input/trace.c > GEN hw/timer/trace.c > GEN hw/dma/trace.c > GEN hw/sparc/trace.c > GEN hw/sd/trace.c > GEN hw/isa/trace.c > GEN hw/mem/trace.c > GEN hw/i386/trace.c > GEN hw/i386/xen/trace.c > GEN hw/9pfs/trace.c > GEN hw/ppc/trace.c > GEN hw/pci/trace.c > GEN hw/s390x/trace.c > GEN hw/vfio/trace.c > GEN hw/acpi/trace.c > GEN hw/arm/trace.c > GEN hw/alpha/trace.c > GEN hw/xen/trace.c > GEN ui/trace.c > GEN audio/trace.c > GEN net/trace.c > GEN target/arm/trace.c > GEN target/i386/trace.c > GEN target/mips/trace.c > GEN target/sparc/trace.c > GEN target/s390x/trace.c > GEN target/ppc/trace.c > GEN qom/trace.c > GEN linux-user/trace.c > GEN qapi/trace.c > GEN accel/tcg/trace.c > GEN accel/kvm/trace.c > GEN nbd/trace.c > GEN config-all-devices.mak > DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c > DEP /tmp/qemu-test/src/dtc/tests/trees.S > DEP /tmp/qemu-test/src/dtc/tests/testutils.c > DEP /tmp/qemu-test/src/dtc/tests/value-labels.c > DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c > DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c > DEP /tmp/qemu-test/src/dtc/tests/check_path.c > DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c > DEP /tmp/qemu-test/src/dtc/tests/overlay.c > DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c > DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c > DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c > DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c > DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c > DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c > DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c > DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c > DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c > DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c > DEP /tmp/qemu-test/src/dtc/tests/incbin.c > DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c > DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c > DEP /tmp/qemu-test/src/dtc/tests/path-references.c > DEP /tmp/qemu-test/src/dtc/tests/references.c > DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c > DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c > DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c > DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c > DEP /tmp/qemu-test/src/dtc/tests/del_node.c > DEP /tmp/qemu-test/src/dtc/tests/del_property.c > DEP /tmp/qemu-test/src/dtc/tests/setprop.c > DEP /tmp/qemu-test/src/dtc/tests/set_name.c > DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c > DEP /tmp/qemu-test/src/dtc/tests/open_pack.c > DEP /tmp/qemu-test/src/dtc/tests/nopulate.c > DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c > DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c > DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c > DEP /tmp/qemu-test/src/dtc/tests/nop_node.c > DEP /tmp/qemu-test/src/dtc/tests/nop_property.c > DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c > DEP /tmp/qemu-test/src/dtc/tests/stringlist.c > DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c > DEP /tmp/qemu-test/src/dtc/tests/notfound.c > DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c > DEP /tmp/qemu-test/src/dtc/tests/get_alias.c > DEP /tmp/qemu-test/src/dtc/tests/char_literal.c > DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c > DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c > DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c > DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c > DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c > DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c > DEP /tmp/qemu-test/src/dtc/tests/get_path.c > DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c > DEP /tmp/qemu-test/src/dtc/tests/getprop.c > DEP /tmp/qemu-test/src/dtc/tests/get_name.c > DEP /tmp/qemu-test/src/dtc/tests/path_offset.c > DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c > DEP /tmp/qemu-test/src/dtc/tests/find_property.c > DEP /tmp/qemu-test/src/dtc/tests/root_node.c > DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c > DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c > DEP /tmp/qemu-test/src/dtc/util.c > DEP /tmp/qemu-test/src/dtc/fdtput.c > DEP /tmp/qemu-test/src/dtc/fdtget.c > DEP /tmp/qemu-test/src/dtc/fdtdump.c > LEX convert-dtsv0-lexer.lex.c > DEP /tmp/qemu-test/src/dtc/srcpos.c > BISON dtc-parser.tab.c > LEX dtc-lexer.lex.c > DEP /tmp/qemu-test/src/dtc/treesource.c > DEP /tmp/qemu-test/src/dtc/livetree.c > DEP /tmp/qemu-test/src/dtc/flattree.c > DEP /tmp/qemu-test/src/dtc/fstree.c > DEP /tmp/qemu-test/src/dtc/dtc.c > DEP /tmp/qemu-test/src/dtc/data.c > DEP /tmp/qemu-test/src/dtc/checks.c > DEP convert-dtsv0-lexer.lex.c > DEP dtc-parser.tab.c > DEP dtc-lexer.lex.c > CHK version_gen.h > UPD version_gen.h > DEP /tmp/qemu-test/src/dtc/util.c > CC libfdt/fdt.o > CC libfdt/fdt_ro.o > CC libfdt/fdt_wip.o > CC libfdt/fdt_sw.o > CC libfdt/fdt_rw.o > CC libfdt/fdt_empty_tree.o > CC libfdt/fdt_strerror.o > CC libfdt/fdt_addresses.o > CC libfdt/fdt_overlay.o > AR libfdt/libfdt.a > ar: creating libfdt/libfdt.a > a - libfdt/fdt.o > a - libfdt/fdt_ro.o > a - libfdt/fdt_wip.o > a - libfdt/fdt_sw.o > a - libfdt/fdt_rw.o > a - libfdt/fdt_strerror.o > a - libfdt/fdt_empty_tree.o > a - libfdt/fdt_addresses.o > a - libfdt/fdt_overlay.o > CC tests/qemu-iotests/socket_scm_helper.o > GEN qga/qapi-generated/qga-qapi-types.h > GEN qga/qapi-generated/qga-qapi-visit.h > GEN qga/qapi-generated/qga-qapi-types.c > GEN qga/qapi-generated/qga-qmp-marshal.c > GEN qga/qapi-generated/qga-qapi-visit.c > GEN qga/qapi-generated/qga-qmp-commands.h > CC qmp-introspect.o > CC qapi-types.o > CC qapi-visit.o > CC qapi-event.o > CC qapi/qapi-visit-core.o > CC qapi/qapi-dealloc-visitor.o > CC qapi/qobject-input-visitor.o > CC qapi/qobject-output-visitor.o > CC qapi/qmp-registry.o > CC qapi/qmp-dispatch.o > CC qapi/string-input-visitor.o > CC qapi/string-output-visitor.o > CC qapi/opts-visitor.o > CC qapi/qapi-clone-visitor.o > CC qapi/qmp-event.o > CC qapi/qapi-util.o > CC qobject/qnull.o > CC qobject/qnum.o > CC qobject/qstring.o > CC qobject/qdict.o > CC qobject/qlist.o > CC qobject/qbool.o > CC qobject/qlit.o > CC qobject/qjson.o > CC qobject/qobject.o > CC qobject/json-lexer.o > CC qobject/json-streamer.o > CC qobject/json-parser.o > CC trace/control.o > CC trace/qmp.o > CC util/osdep.o > CC util/cutils.o > CC util/unicode.o > CC util/qemu-timer-common.o > CC util/bufferiszero.o > CC util/lockcnt.o > CC util/aiocb.o > CC util/async.o > CC util/thread-pool.o > CC util/qemu-timer.o > CC util/main-loop.o > CC util/iohandler.o > CC util/aio-posix.o > CC util/compatfd.o > CC util/event_notifier-posix.o > CC util/mmap-alloc.o > CC util/oslib-posix.o > CC util/qemu-openpty.o > CC util/qemu-thread-posix.o > CC util/memfd.o > CC util/envlist.o > CC util/path.o > CC util/module.o > CC util/host-utils.o > CC util/bitmap.o > CC util/bitops.o > CC util/hbitmap.o > CC util/fifo8.o > CC util/acl.o > CC util/cacheinfo.o > CC util/error.o > CC util/qemu-error.o > CC util/id.o > CC util/iov.o > CC util/qemu-config.o > CC util/qemu-sockets.o > CC util/uri.o > CC util/notify.o > CC util/qemu-option.o > CC util/qemu-progress.o > CC util/keyval.o > CC util/hexdump.o > CC util/crc32c.o > CC util/uuid.o > CC util/throttle.o > CC util/getauxval.o > CC util/readline.o > CC util/rcu.o > CC util/qemu-coroutine.o > CC util/qemu-coroutine-lock.o > CC util/qemu-coroutine-io.o > CC util/qemu-coroutine-sleep.o > CC util/coroutine-ucontext.o > CC util/buffer.o > CC util/timed-average.o > CC util/base64.o > CC util/log.o > CC util/qdist.o > CC util/qht.o > CC util/range.o > CC util/stats64.o > CC util/systemd.o > CC trace-root.o > CC util/trace.o > CC crypto/trace.o > CC io/trace.o > CC migration/trace.o > CC block/trace.o > CC chardev/trace.o > CC hw/block/trace.o > CC hw/block/dataplane/trace.o > CC hw/char/trace.o > CC hw/intc/trace.o > CC hw/net/trace.o > CC hw/virtio/trace.o > CC hw/audio/trace.o > CC hw/misc/trace.o > CC hw/usb/trace.o > CC hw/scsi/trace.o > CC hw/nvram/trace.o > CC hw/display/trace.o > CC hw/input/trace.o > CC hw/timer/trace.o > CC hw/dma/trace.o > CC hw/sparc/trace.o > CC hw/sd/trace.o > CC hw/isa/trace.o > CC hw/mem/trace.o > CC hw/i386/trace.o > CC hw/i386/xen/trace.o > CC hw/9pfs/trace.o > CC hw/ppc/trace.o > CC hw/pci/trace.o > CC hw/s390x/trace.o > CC hw/vfio/trace.o > CC hw/acpi/trace.o > CC hw/arm/trace.o > CC hw/alpha/trace.o > CC hw/xen/trace.o > CC ui/trace.o > CC audio/trace.o > CC net/trace.o > CC target/arm/trace.o > CC target/i386/trace.o > CC target/mips/trace.o > CC target/sparc/trace.o > CC target/s390x/trace.o > CC target/ppc/trace.o > CC qom/trace.o > CC linux-user/trace.o > CC qapi/trace.o > CC accel/tcg/trace.o > CC accel/kvm/trace.o > CC nbd/trace.o > CC crypto/pbkdf-stub.o > CC stubs/arch-query-cpu-def.o > CC stubs/arch-query-cpu-model-expansion.o > CC stubs/arch-query-cpu-model-comparison.o > CC stubs/arch-query-cpu-model-baseline.o > CC stubs/bdrv-next-monitor-owned.o > CC stubs/blk-commit-all.o > CC stubs/blockdev-close-all-bdrv-states.o > CC stubs/clock-warp.o > CC stubs/cpu-get-clock.o > CC stubs/cpu-get-icount.o > CC stubs/dump.o > CC stubs/error-printf.o > CC stubs/fdset.o > CC stubs/gdbstub.o > CC stubs/get-vm-name.o > CC stubs/instrument.o > CC stubs/iothread.o > CC stubs/iothread-lock.o > CC stubs/is-daemonized.o > CC stubs/machine-init-done.o > CC stubs/migr-blocker.o > CC stubs/change-state-handler.o > CC stubs/monitor.o > CC stubs/notify-event.o > CC stubs/qtest.o > CC stubs/replay.o > /tmp/qemu-test/src/stubs/instrument.c:22: error: redefinition of typedef ‘strList’ > ./qapi-types.h:131: note: previous declaration of ‘strList’ was here > CC stubs/runstate-check.o > make: *** [stubs/instrument.o] Error 1 > make: *** Waiting for unfinished jobs.... > Traceback (most recent call last): > File "./tests/docker/docker.py", line 384, in <module> > sys.exit(main()) > File "./tests/docker/docker.py", line 381, in main > return args.cmdobj.run(args, argv) > File "./tests/docker/docker.py", line 239, in run > return Docker().run(argv, args.keep, quiet=args.quiet) > File "./tests/docker/docker.py", line 207, in run > quiet=quiet) > File "./tests/docker/docker.py", line 125, in _do_check > return subprocess.check_call(self._command + cmd, **kwargs) > File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call > raise CalledProcessError(retcode, cmd) > subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=9670c49e980a11e7950952540069c830', '-u', '0', '-t', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/var/tmp/patchew-tester-tmp-lf5qg9x6/src/docker-src.2017-09-12-18.34.46.13887:/var/tmp/qemu:z,ro', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2 > make[1]: *** [tests/docker/Makefile.include:139: docker-run] Error 1 > make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-lf5qg9x6/src' > make: *** [tests/docker/Makefile.include:168: docker-run-test-quick@centos6] Error 2 I think I fixed it, and will send a new series (for some reason this does not happen with my GCC version). Cheers, Lluis
© 2016 - 2026 Red Hat, Inc.