[PATCH v9 00/13] TCG code quality tracking and perf integration

Alex Bennée posted 13 patches 2 weeks ago
Test FreeBSD passed
Test docker-mingw@fedora failed
Test asan passed
Test docker-quick@centos7 passed
Test checkpatch failed
Test docker-clang@ubuntu passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191007152839.30804-1-alex.bennee@linaro.org
accel/tcg/Makefile.objs       |   4 +-
accel/tcg/cpu-exec.c          |   4 +
accel/tcg/perf/Makefile.objs  |   1 +
accel/tcg/perf/jitdump.c      | 206 +++++++++++
accel/tcg/perf/jitdump.h      |  36 ++
accel/tcg/tb-stats.c          | 662 ++++++++++++++++++++++++++++++++++
accel/tcg/tcg-runtime.c       |   7 +
accel/tcg/tcg-runtime.h       |   2 +
accel/tcg/translate-all.c     | 173 +++++++--
accel/tcg/translator.c        |   4 +
configure                     |   8 -
cpus.c                        |  14 +-
disas.c                       |  31 +-
docs/devel/tcg.rst            |  15 +
hmp-commands-info.hx          |  16 +
hmp-commands.hx               |  17 +
include/exec/exec-all.h       |  15 +-
include/exec/gen-icount.h     |  10 +
include/exec/tb-context.h     |  12 +
include/exec/tb-hash.h        |   7 +
include/exec/tb-stats-dump.h  |  21 ++
include/exec/tb-stats-flags.h |  31 ++
include/exec/tb-stats.h       | 165 +++++++++
include/qemu-common.h         |   3 +
include/qemu/log-for-trace.h  |   4 +
include/qemu/log.h            |   3 +
include/qemu/timer.h          |   5 +-
linux-user/exit.c             |   2 +
linux-user/main.c             |   7 +
monitor/misc.c                | 127 +++++--
os-posix.c                    |   5 +
qemu-options.hx               |  11 +
stubs/Makefile.objs           |   1 +
stubs/tb-stats.c              |  32 ++
tcg/tcg.c                     | 221 +++---------
tcg/tcg.h                     |  34 +-
util/log.c                    |  89 ++++-
vl.c                          |  10 +-
38 files changed, 1727 insertions(+), 288 deletions(-)
create mode 100644 accel/tcg/perf/Makefile.objs
create mode 100644 accel/tcg/perf/jitdump.c
create mode 100644 accel/tcg/perf/jitdump.h
create mode 100644 accel/tcg/tb-stats.c
create mode 100644 include/exec/tb-stats-dump.h
create mode 100644 include/exec/tb-stats-flags.h
create mode 100644 include/exec/tb-stats.h
create mode 100644 stubs/tb-stats.c

[PATCH v9 00/13] TCG code quality tracking and perf integration

Posted by Alex Bennée 2 weeks ago
Hi,

These are the bits of Vanderson's GSoC project which I think are ready
for merge(^) and would like get up-streamed before the code freeze
kicks in. It effectively removes the CONFIG_PROFILER support in favour
of a more dynamic and configurable TB Statistics subsystem. While not
in use it has no impact on the system apart a small amount of wasted
space in the TCGContext for each thread which is used to collect stats
during translation. When in use a TBStats structure is created for
each set of TBs that have the same address/flags combination. The most
basic tracking involves counting executions of each TB. You can also
enable JIT stats and sort by features such as spill count and
host/guest expansion ration.

For full performance analysis you can use -perf to output a JIT dump
that is compatible with the linux perf tool. This allows you to see
exactly which TBs are responsible for the majority of real execution
time. With the additional TB stats involved it will also include basic
information about the quality of that code.

The main changes from Vanderson's last post apart from general
clean-ups and g_autoptr'ing is I've dropped the "cfg" and "coverset"
commands. I dropped "cfg" because I wasn't happy about it navigated
the next TB in the chain. "coverset" tends to dump quite a lot of TBs
on a full system emulation so I wanted to think about a slightly
smoother UI experience.

^ and finally I think I'll also drop the "tb" command for the next
iteration because although useful it fails when the guest has
un-mapped pages and results in a exception getting delivered to the
guest which is less than ideal. See the comments for get_code_string.
However I've left it in this iteration so you can see a taste of the
future.

There are more notes on the project at the wiki page:

  https://wiki.qemu.org/Features/TCGCodeQuality

Please review.

Alex Bennée (2):
  tb-stats: reset the tracked TBs on a tb_flush
  configure: remove the final bits of --profiler support

Vanderson M. do Rosario (11):
  accel/tcg: introduce TBStatistics structure
  accel: collecting TB execution count
  accel: collecting JIT statistics
  accel: replacing part of CONFIG_PROFILER with TBStats
  accel: adding TB_JIT_TIME and full replacing CONFIG_PROFILER
  debug: add -d tb_stats to control TBStatistics collection:
  monitor: adding tb_stats hmp command
  Adding info [tb-list|tb] commands to HMP (WIP)
  tb-stats: dump hot TBs at the end of the execution
  accel/tcg: adding integration with linux perf
  tb-stats: adding TBStatistics info into perf dump

 accel/tcg/Makefile.objs       |   4 +-
 accel/tcg/cpu-exec.c          |   4 +
 accel/tcg/perf/Makefile.objs  |   1 +
 accel/tcg/perf/jitdump.c      | 206 +++++++++++
 accel/tcg/perf/jitdump.h      |  36 ++
 accel/tcg/tb-stats.c          | 662 ++++++++++++++++++++++++++++++++++
 accel/tcg/tcg-runtime.c       |   7 +
 accel/tcg/tcg-runtime.h       |   2 +
 accel/tcg/translate-all.c     | 173 +++++++--
 accel/tcg/translator.c        |   4 +
 configure                     |   8 -
 cpus.c                        |  14 +-
 disas.c                       |  31 +-
 docs/devel/tcg.rst            |  15 +
 hmp-commands-info.hx          |  16 +
 hmp-commands.hx               |  17 +
 include/exec/exec-all.h       |  15 +-
 include/exec/gen-icount.h     |  10 +
 include/exec/tb-context.h     |  12 +
 include/exec/tb-hash.h        |   7 +
 include/exec/tb-stats-dump.h  |  21 ++
 include/exec/tb-stats-flags.h |  31 ++
 include/exec/tb-stats.h       | 165 +++++++++
 include/qemu-common.h         |   3 +
 include/qemu/log-for-trace.h  |   4 +
 include/qemu/log.h            |   3 +
 include/qemu/timer.h          |   5 +-
 linux-user/exit.c             |   2 +
 linux-user/main.c             |   7 +
 monitor/misc.c                | 127 +++++--
 os-posix.c                    |   5 +
 qemu-options.hx               |  11 +
 stubs/Makefile.objs           |   1 +
 stubs/tb-stats.c              |  32 ++
 tcg/tcg.c                     | 221 +++---------
 tcg/tcg.h                     |  34 +-
 util/log.c                    |  89 ++++-
 vl.c                          |  10 +-
 38 files changed, 1727 insertions(+), 288 deletions(-)
 create mode 100644 accel/tcg/perf/Makefile.objs
 create mode 100644 accel/tcg/perf/jitdump.c
 create mode 100644 accel/tcg/perf/jitdump.h
 create mode 100644 accel/tcg/tb-stats.c
 create mode 100644 include/exec/tb-stats-dump.h
 create mode 100644 include/exec/tb-stats-flags.h
 create mode 100644 include/exec/tb-stats.h
 create mode 100644 stubs/tb-stats.c

-- 
2.20.1


Re: [PATCH v9 00/13] TCG code quality tracking and perf integration

Posted by no-reply@patchew.org 2 weeks ago
Patchew URL: https://patchew.org/QEMU/20191007152839.30804-1-alex.bennee@linaro.org/



Hi,

This series failed the docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#! /bin/bash
export ARCH=x86_64
make docker-image-fedora V=1 NETWORK=1
time make docker-test-mingw@fedora J=14 NETWORK=1
=== TEST SCRIPT END ===

  CC      qga/vss-win32.o
  CC      qga/qapi-generated/qga-qapi-types.o
  CC      qga/qapi-generated/qga-qapi-visit.o
./qemu-monitor.texi:585: warning: @findex missing argument
  CC      qga/qapi-generated/qga-qapi-commands.o
./qemu-monitor.texi:585: warning: @findex missing argument
  AR      libqemuutil.a
  LINK    elf2dmp.exe
  CC      qemu-img.o
---
  LINK    qemu-img.exe
  CC      aarch64-softmmu/arch_init.o
  CC      aarch64-softmmu/cpus.o
/tmp/qemu-test/src/disas.c:425:31: error: 'struct _IO_FILE' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
 static int fprintf_log(struct _IO_FILE *a, const char *b, ...)
                               ^~~~~~~~
/tmp/qemu-test/src/disas.c: In function 'fprintf_log':
/tmp/qemu-test/src/disas.c:431:18: error: passing argument 1 of 'vfprintf' from incompatible pointer type [-Werror=incompatible-pointer-types]
         vfprintf(a, b, ap);
                  ^
In file included from /tmp/qemu-test/src/include/qemu/osdep.h:99,
---
               ~~~~~~^~~~~~~~
In file included from /tmp/qemu-test/src/disas.c:3:
/tmp/qemu-test/src/disas.c: In function 'target_disas':
/tmp/qemu-test/src/include/disas/dis-asm.h:478:23: error: assignment to 'fprintf_function' {aka 'int (*)(struct _iobuf *, const char *, ...)'} from incompatible pointer type 'int (*)(struct _IO_FILE *, const char *, ...)' [-Werror=incompatible-pointer-types]
   (INFO).fprintf_func = (FPRINTF_FUNC), \
                       ^
/tmp/qemu-test/src/include/disas/dis-asm.h:470:3: note: in expansion of macro 'INIT_DISASSEMBLE_INFO_NO_ARCH'
---
/tmp/qemu-test/src/disas.c:450:5: note: in expansion of macro 'INIT_DISASSEMBLE_INFO'
     INIT_DISASSEMBLE_INFO(s.info, out, fprintf_log);
     ^~~~~~~~~~~~~~~~~~~~~
/tmp/qemu-test/src/disas.c:481:21: error: passing argument 1 of 'fprintf_log' from incompatible pointer type [-Werror=incompatible-pointer-types]
         fprintf_log(out, "0x" TARGET_FMT_lx ":  ", pc);
                     ^~~
/tmp/qemu-test/src/disas.c:425:41: note: expected 'struct _IO_FILE *' but argument is of type 'FILE *' {aka 'struct _iobuf *'}
 static int fprintf_log(struct _IO_FILE *a, const char *b, ...)
                        ~~~~~~~~~~~~~~~~~^
/tmp/qemu-test/src/disas.c:483:21: error: passing argument 1 of 'fprintf_log' from incompatible pointer type [-Werror=incompatible-pointer-types]
         fprintf_log(out, "\n");
                     ^~~
/tmp/qemu-test/src/disas.c:425:41: note: expected 'struct _IO_FILE *' but argument is of type 'FILE *' {aka 'struct _iobuf *'}
 static int fprintf_log(struct _IO_FILE *a, const char *b, ...)
                        ~~~~~~~~~~~~~~~~~^
cc1: all warnings being treated as errors
make[1]: *** [/tmp/qemu-test/src/rules.mak:69: disas.o] Error 1
make[1]: *** Waiting for unfinished jobs....
  CC      x86_64-softmmu/tcg/tcg-op-gvec.o
  CC      x86_64-softmmu/tcg/tcg-common.o
---
  CC      x86_64-softmmu/cpus.o
  CC      x86_64-softmmu/gdbstub.o
  CC      x86_64-softmmu/balloon.o
/tmp/qemu-test/src/disas.c:425:31: error: 'struct _IO_FILE' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
 static int fprintf_log(struct _IO_FILE *a, const char *b, ...)
                               ^~~~~~~~
/tmp/qemu-test/src/disas.c: In function 'fprintf_log':
/tmp/qemu-test/src/disas.c:431:18: error: passing argument 1 of 'vfprintf' from incompatible pointer type [-Werror=incompatible-pointer-types]
         vfprintf(a, b, ap);
                  ^
In file included from /tmp/qemu-test/src/include/qemu/osdep.h:99,
---
               ~~~~~~^~~~~~~~
In file included from /tmp/qemu-test/src/disas.c:3:
/tmp/qemu-test/src/disas.c: In function 'target_disas':
/tmp/qemu-test/src/include/disas/dis-asm.h:478:23: error: assignment to 'fprintf_function' {aka 'int (*)(struct _iobuf *, const char *, ...)'} from incompatible pointer type 'int (*)(struct _IO_FILE *, const char *, ...)' [-Werror=incompatible-pointer-types]
   (INFO).fprintf_func = (FPRINTF_FUNC), \
                       ^
/tmp/qemu-test/src/include/disas/dis-asm.h:470:3: note: in expansion of macro 'INIT_DISASSEMBLE_INFO_NO_ARCH'
---
/tmp/qemu-test/src/disas.c:450:5: note: in expansion of macro 'INIT_DISASSEMBLE_INFO'
     INIT_DISASSEMBLE_INFO(s.info, out, fprintf_log);
     ^~~~~~~~~~~~~~~~~~~~~
/tmp/qemu-test/src/disas.c:481:21: error: passing argument 1 of 'fprintf_log' from incompatible pointer type [-Werror=incompatible-pointer-types]
         fprintf_log(out, "0x" TARGET_FMT_lx ":  ", pc);
                     ^~~
/tmp/qemu-test/src/disas.c:425:41: note: expected 'struct _IO_FILE *' but argument is of type 'FILE *' {aka 'struct _iobuf *'}
 static int fprintf_log(struct _IO_FILE *a, const char *b, ...)
                        ~~~~~~~~~~~~~~~~~^
/tmp/qemu-test/src/disas.c:483:21: error: passing argument 1 of 'fprintf_log' from incompatible pointer type [-Werror=incompatible-pointer-types]
         fprintf_log(out, "\n");
                     ^~~
/tmp/qemu-test/src/disas.c:425:41: note: expected 'struct _IO_FILE *' but argument is of type 'FILE *' {aka 'struct _iobuf *'}
 static int fprintf_log(struct _IO_FILE *a, const char *b, ...)
                        ~~~~~~~~~~~~~~~~~^
cc1: all warnings being treated as errors
make[1]: *** [/tmp/qemu-test/src/rules.mak:69: disas.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:482: aarch64-softmmu/all] Error 2
make: *** Waiting for unfinished jobs....
make: *** [Makefile:482: x86_64-softmmu/all] Error 2
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 662, in <module>
    sys.exit(main())
---
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=659c6edd1ef74ee3b79cf799f0a80d51', '-u', '1001', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-p5lijq1d/src/docker-src.2019-10-07-14.43.03.6150:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2.
filter=--filter=label=com.qemu.instance.uuid=659c6edd1ef74ee3b79cf799f0a80d51
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-p5lijq1d/src'
make: *** [docker-run-test-mingw@fedora] Error 2

real    4m42.940s
user    0m8.363s


The full log is available at
http://patchew.org/logs/20191007152839.30804-1-alex.bennee@linaro.org/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

Re: [PATCH v9 00/13] TCG code quality tracking and perf integration

Posted by no-reply@patchew.org 2 weeks ago
Patchew URL: https://patchew.org/QEMU/20191007152839.30804-1-alex.bennee@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PATCH  v9 00/13] TCG code quality tracking and perf integration
Message-id: 20191007152839.30804-1-alex.bennee@linaro.org
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20191007152839.30804-1-alex.bennee@linaro.org -> patchew/20191007152839.30804-1-alex.bennee@linaro.org
Switched to a new branch 'test'
2344fa6 configure: remove the final bits of --profiler support
f20376c tb-stats: adding TBStatistics info into perf dump
3ce3a87 accel/tcg: adding integration with linux perf
f430d85 tb-stats: dump hot TBs at the end of the execution
acc3b84 Adding info [tb-list|tb] commands to HMP (WIP)
cdf6f72 tb-stats: reset the tracked TBs on a tb_flush
9fe7b93 monitor: adding tb_stats hmp command
1358a45 debug: add -d tb_stats to control TBStatistics collection:
c1bf3a8 accel: adding TB_JIT_TIME and full replacing CONFIG_PROFILER
947c81f accel: replacing part of CONFIG_PROFILER with TBStats
b3bf3ff accel: collecting JIT statistics
c7359e9 accel: collecting TB execution count
ac71d5f accel/tcg: introduce TBStatistics structure

=== OUTPUT BEGIN ===
1/13 Checking commit ac71d5f77f09 (accel/tcg: introduce TBStatistics structure)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#37: 
new file mode 100644

WARNING: Block comments use a leading /* on a separate line
#231: FILE: include/exec/tb-context.h:26:
+/* Page tracking code uses ram addresses in system mode, and virtual

WARNING: Block comments use * on subsequent lines
#232: FILE: include/exec/tb-context.h:27:
+/* Page tracking code uses ram addresses in system mode, and virtual
+   addresses in userspace mode.  Define tb_page_addr_t to be an appropriate

WARNING: Block comments use a trailing */ on a separate line
#233: FILE: include/exec/tb-context.h:28:
+   type.  */

total: 0 errors, 4 warnings, 271 lines checked

Patch 1/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
2/13 Checking commit c7359e966d69 (accel: collecting TB execution count)
3/13 Checking commit b3bf3ff3a8e4 (accel: collecting JIT statistics)
4/13 Checking commit 947c81f1a9c9 (accel: replacing part of CONFIG_PROFILER with TBStats)
WARNING: line over 80 characters
#105: FILE: accel/tcg/tb-stats.c:85:
+            qemu_printf("JIT cycles          %" PRId64 " (%0.3f s at 2.4 GHz)\n",

WARNING: line over 80 characters
#126: FILE: accel/tcg/tb-stats.c:106:
+                    (double)s->la_time / (s->code_time ? s->code_time : 1) * 100.0);

WARNING: line over 80 characters
#130: FILE: accel/tcg/tb-stats.c:110:
+                    s->restore_count ? (double)s->restore_time / s->restore_count : 0);

total: 0 errors, 3 warnings, 345 lines checked

Patch 4/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
5/13 Checking commit c1bf3a89e351 (accel: adding TB_JIT_TIME and full replacing CONFIG_PROFILER)
WARNING: line over 80 characters
#112: FILE: accel/tcg/tb-stats.c:142:
+                (double)jpi->opt_time / (jpi->code_time ? jpi->code_time : 1) * 100.0);

WARNING: line over 80 characters
#114: FILE: accel/tcg/tb-stats.c:144:
+                (double)jpi->la_time / (jpi->code_time ? jpi->code_time : 1) * 100.0);

WARNING: line over 80 characters
#118: FILE: accel/tcg/tb-stats.c:148:
+                jpi->restore_count ? (double)jpi->restore_time / jpi->restore_count : 0);

WARNING: line over 80 characters
#149: FILE: accel/tcg/tb-stats.c:152:
+                s->cpu_exec_time, s->cpu_exec_time / (double) NANOSECONDS_PER_SECOND);

WARNING: line over 80 characters
#589: FILE: tcg/tcg.c:4133:
+        qemu_printf("%s %" PRId64 "\n", tcg_op_defs[i].name, prof.table_op_count[i]);

total: 0 errors, 5 warnings, 557 lines checked

Patch 5/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
6/13 Checking commit 1358a45e85db (debug: add -d tb_stats to control TBStatistics collection:)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#53: 
new file mode 100644

WARNING: line over 80 characters
#206: FILE: util/log.c:279:
+    { CPU_LOG_TB_STATS, "tb_stats[[,level=(+all+jit+exec+time)][,dump_limit=<number>]]",

WARNING: line over 80 characters
#218: FILE: util/log.c:305:
+            set_default_tbstats_flag(TB_JIT_STATS | TB_EXEC_STATS | TB_JIT_TIME);

WARNING: line over 80 characters
#228: FILE: util/log.c:315:
+            for (level_tmp = level_parts; level_tmp && *level_tmp; level_tmp++) {

total: 0 errors, 4 warnings, 176 lines checked

Patch 6/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/13 Checking commit 9fe7b93cf6d7 (monitor: adding tb_stats hmp command)
WARNING: line over 80 characters
#103: FILE: accel/tcg/tb-stats.c:201:
+        /* Continue to create TBStatistic structures but stop collecting statistics */

WARNING: line over 80 characters
#126: FILE: accel/tcg/tb-stats.c:224:
+            qemu_printf("no search on record! execute info tbs before filtering!");

WARNING: line over 80 characters
#132: FILE: accel/tcg/tb-stats.c:230:
+        /* Set all tbstats as paused, then return only the ones from last_search */

WARNING: Block comments use a leading /* on a separate line
#223: FILE: include/exec/tb-stats.h:35:
+enum SortBy { SORT_BY_HOTNESS, SORT_BY_HG /* Host/Guest */, SORT_BY_SPILLS };

total: 0 errors, 4 warnings, 259 lines checked

Patch 7/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
8/13 Checking commit cdf6f7219143 (tb-stats: reset the tracked TBs on a tb_flush)
9/13 Checking commit acc3b8494d38 (Adding info [tb-list|tb] commands to HMP (WIP))
WARNING: line over 80 characters
#144: FILE: accel/tcg/tb-stats.c:325:
+        qemu_log("\t| exec:%lu/%lu guest inst cov:%.2f%%\n", tbs->executions.normal,

WARNING: line over 80 characters
#188: FILE: accel/tcg/tb-stats.c:369:
+            (float) stat_per_translation(tbs1, code.out_len) / tbs1->code.num_guest_inst;

WARNING: line over 80 characters
#190: FILE: accel/tcg/tb-stats.c:371:
+            (float) stat_per_translation(tbs2, code.out_len) / tbs2->code.num_guest_inst;

WARNING: line over 80 characters
#223: FILE: accel/tcg/tb-stats.c:404:
+            (tbs->executions.atomic + tbs->executions.normal) * tbs->code.num_guest_inst;

WARNING: line over 80 characters
#229: FILE: accel/tcg/tb-stats.c:410:
+            (tbs->executions.atomic + tbs->executions.normal) * tbs->code.num_guest_inst;

WARNING: line over 80 characters
#230: FILE: accel/tcg/tb-stats.c:411:
+        tbs->executions.coverage = (10000 * tb_total_execs) / (total_exec_count + 1);

WARNING: line over 80 characters
#247: FILE: accel/tcg/tb-stats.c:428:
+    last_search = g_list_sort_with_data(last_search, inverse_sort_tbs, &sort_by);

total: 0 errors, 7 warnings, 632 lines checked

Patch 9/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
10/13 Checking commit f430d85d6d0a (tb-stats: dump hot TBs at the end of the execution)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#90: 
new file mode 100644

WARNING: Block comments use a leading /* on a separate line
#112: FILE: include/exec/tb-stats-dump.h:18:
+static inline void tb_stats_dump(void) { /* do nothing */ };

total: 0 errors, 2 warnings, 123 lines checked

Patch 10/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
11/13 Checking commit 3ce3a87a1f50 (accel/tcg: adding integration with linux perf)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#38: 
new file mode 100644

WARNING: line over 80 characters
#51: FILE: accel/tcg/perf/jitdump.c:2:
+ * This code implements an interface to create and fill jitdump files. These files

WARNING: line over 80 characters
#161: FILE: accel/tcg/perf/jitdump.c:112:
+    g_autofree gchar *dumpfile_name = g_strdup_printf("./jit-%d.dump", getpid());

WARNING: Block comments use a leading /* on a separate line
#164: FILE: accel/tcg/perf/jitdump.c:115:
+    /* 'Perf record' saves mmaped files during the execution of a program and

WARNING: line over 80 characters
#175: FILE: accel/tcg/perf/jitdump.c:126:
+        printf("Failed to create mmap marker file for perf %d\n", fileno(dumpfile));

WARNING: architecture specific defines should be avoided
#294: FILE: accel/tcg/translate-all.c:61:
+#ifdef __linux__

WARNING: architecture specific defines should be avoided
#305: FILE: accel/tcg/translate-all.c:1174:
+#ifdef __linux__

WARNING: architecture specific defines should be avoided
#317: FILE: accel/tcg/translate-all.c:1990:
+#ifdef __linux__

WARNING: line over 80 characters
#381: FILE: linux-user/main.c:458:
+     "",           "dump jitdump files to help linux perf JIT code visualization"},

ERROR: space prohibited between function name and open parenthesis '('
#393: FILE: os-posix.c:194:
+#if defined(CONFIG_TCG) && defined (CLOCK_MONOTONIC)

total: 1 errors, 9 warnings, 342 lines checked

Patch 11/13 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

12/13 Checking commit f20376c59d71 (tb-stats: adding TBStatistics info into perf dump)
13/13 Checking commit 2344fa699da4 (configure: remove the final bits of --profiler support)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20191007152839.30804-1-alex.bennee@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com