mbox series

[v5,00/43] Mirror map JIT memory for TCG

Message ID 20210105171950.415486-1-richard.henderson@linaro.org
Headers show
Series Mirror map JIT memory for TCG | expand

Message

Richard Henderson Jan. 5, 2021, 5:19 p.m. UTC
Changes for v5:
  * Protect MAP_JIT with !splitwx.
  * Improve comments for in_code_gen_buffer.
  * Update qemu-options.hx.

Thanks to Joelle for all of the reviews on v4.
The patches still without review are:

17-tcg-Add-accel-tcg-split-wx-property.patch
27-tcg-ppc-Use-tcg_tbrel_diff.patch
28-tcg-ppc-Use-tcg_out_mem_long-to-reset-TCG_REG_TB.patch
29-tcg-ppc-Support-split-wx-code-generation.patch
30-tcg-sparc-Use-tcg_tbrel_diff.patch
31-tcg-sparc-Support-split-wx-code-generation.patch
32-tcg-s390-Use-tcg_tbrel_diff.patch
33-tcg-s390-Support-split-wx-code-generation.patch
37-accel-tcg-Add-mips-support-to-alloc_code_gen_buff.patch
38-tcg-mips-Do-not-assert-on-relocation-overflow.patch
39-tcg-mips-Support-split-wx-code-generation.patch
40-tcg-arm-Support-split-wx-code-generation.patch

I'll be happy with even a glance and an Acked-by across some of
these non-x86 tcg backends, just to see if I've done something
obviously wrong.


r~


Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Alex Bennée <alex.bennee@linaro.org>
Cc: Joelle van Dyne <j@getutm.app>

Richard Henderson (43):
  tcg: Do not flush icache for interpreter
  util: Extract flush_icache_range to cacheflush.c
  util: Enhance flush_icache_range with separate data pointer
  util: Specialize flush_idcache_range for aarch64
  tcg: Move tcg prologue pointer out of TCGContext
  tcg: Move tcg epilogue pointer out of TCGContext
  tcg: Add in_code_gen_buffer
  tcg: Introduce tcg_splitwx_to_{rx,rw}
  tcg: Adjust TCGLabel for const
  tcg: Adjust tcg_out_call for const
  tcg: Adjust tcg_out_label for const
  tcg: Adjust tcg_register_jit for const
  tcg: Adjust tb_target_set_jmp_target for split-wx
  tcg: Make DisasContextBase.tb const
  tcg: Make tb arg to synchronize_from_tb const
  tcg: Use Error with alloc_code_gen_buffer
  tcg: Add --accel tcg,split-wx property
  accel/tcg: Support split-wx for linux with memfd
  accel/tcg: Support split-wx for darwin/iOS with vm_remap
  tcg: Return the TB pointer from the rx region from exit_tb
  tcg/i386: Support split-wx code generation
  tcg/aarch64: Use B not BL for tcg_out_goto_long
  tcg/aarch64: Support split-wx code generation
  disas: Push const down through host disassembly
  tcg/tci: Push const down through bytecode reading
  tcg: Introduce tcg_tbrel_diff
  tcg/ppc: Use tcg_tbrel_diff
  tcg/ppc: Use tcg_out_mem_long to reset TCG_REG_TB
  tcg/ppc: Support split-wx code generation
  tcg/sparc: Use tcg_tbrel_diff
  tcg/sparc: Support split-wx code generation
  tcg/s390: Use tcg_tbrel_diff
  tcg/s390: Support split-wx code generation
  tcg/riscv: Fix branch range checks
  tcg/riscv: Remove branch-over-branch fallback
  tcg/riscv: Support split-wx code generation
  accel/tcg: Add mips support to alloc_code_gen_buffer_splitwx_memfd
  tcg/mips: Do not assert on relocation overflow
  tcg/mips: Support split-wx code generation
  tcg/arm: Support split-wx code generation
  tcg: Remove TCG_TARGET_SUPPORT_MIRROR
  tcg: Constify tcg_code_gen_epilogue
  tcg: Constify TCGLabelQemuLdst.raddr

 accel/tcg/tcg-runtime.h      |   2 +-
 include/disas/dis-asm.h      |   4 +-
 include/disas/disas.h        |   2 +-
 include/exec/exec-all.h      |   2 +-
 include/exec/gen-icount.h    |   4 +-
 include/exec/log.h           |   2 +-
 include/exec/translator.h    |   2 +-
 include/hw/core/cpu.h        |   3 +-
 include/qemu/cacheflush.h    |  35 ++++
 include/sysemu/tcg.h         |   3 +-
 include/tcg/tcg-op.h         |   2 +-
 include/tcg/tcg.h            |  61 +++++--
 tcg/aarch64/tcg-target.h     |   7 +-
 tcg/arm/tcg-target.h         |   7 +-
 tcg/i386/tcg-target.h        |  10 +-
 tcg/mips/tcg-target.h        |  13 +-
 tcg/ppc/tcg-target.h         |   3 +-
 tcg/riscv/tcg-target.h       |   7 +-
 tcg/s390/tcg-target.h        |  12 +-
 tcg/sparc/tcg-target.h       |  10 +-
 tcg/tci/tcg-target.h         |  10 +-
 accel/tcg/cpu-exec.c         |  41 +++--
 accel/tcg/tcg-all.c          |  26 ++-
 accel/tcg/tcg-runtime.c      |   4 +-
 accel/tcg/translate-all.c    | 311 +++++++++++++++++++++++++++--------
 accel/tcg/translator.c       |   4 +-
 bsd-user/main.c              |   2 +-
 disas.c                      |   2 +-
 disas/capstone.c             |   2 +-
 linux-user/main.c            |   2 +-
 softmmu/physmem.c            |   3 +-
 target/arm/cpu.c             |   3 +-
 target/arm/translate-a64.c   |   2 +-
 target/avr/cpu.c             |   3 +-
 target/hppa/cpu.c            |   3 +-
 target/i386/tcg/tcg-cpu.c    |   3 +-
 target/microblaze/cpu.c      |   3 +-
 target/mips/cpu.c            |   3 +-
 target/riscv/cpu.c           |   3 +-
 target/rx/cpu.c              |   3 +-
 target/sh4/cpu.c             |   3 +-
 target/sparc/cpu.c           |   3 +-
 target/tricore/cpu.c         |   2 +-
 tcg/tcg-op.c                 |  15 +-
 tcg/tcg.c                    |  91 ++++++++--
 tcg/tci.c                    |  60 ++++---
 util/cacheflush.c            | 146 ++++++++++++++++
 util/cacheinfo.c             |   8 +-
 tcg/aarch64/tcg-target.c.inc |  75 +++++----
 tcg/arm/tcg-target.c.inc     |  41 ++---
 tcg/i386/tcg-target.c.inc    |  36 ++--
 tcg/mips/tcg-target.c.inc    |  97 +++++------
 tcg/ppc/tcg-target.c.inc     | 110 ++++++-------
 tcg/riscv/tcg-target.c.inc   | 125 +++++---------
 tcg/s390/tcg-target.c.inc    |  91 +++++-----
 tcg/sparc/tcg-target.c.inc   |  58 +++----
 tcg/tcg-ldst.c.inc           |   2 +-
 tcg/tcg-pool.c.inc           |   6 +-
 tcg/tci/tcg-target.c.inc     |   2 +-
 MAINTAINERS                  |   2 +
 accel/tcg/trace-events       |   2 +-
 qemu-options.hx              |   7 +
 util/meson.build             |   2 +-
 63 files changed, 1017 insertions(+), 591 deletions(-)
 create mode 100644 include/qemu/cacheflush.h
 create mode 100644 util/cacheflush.c

-- 
2.25.1

Comments

no-reply@patchew.org Jan. 5, 2021, 6:12 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20210105171950.415486-1-richard.henderson@linaro.org/



Hi,

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

Type: series
Message-id: 20210105171950.415486-1-richard.henderson@linaro.org
Subject: [PATCH v5 00/43] Mirror map JIT memory for TCG

=== 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 ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20210105171950.415486-1-richard.henderson@linaro.org -> patchew/20210105171950.415486-1-richard.henderson@linaro.org
Switched to a new branch 'test'
c3f5ca7 tcg: Constify TCGLabelQemuLdst.raddr
7346927 tcg: Constify tcg_code_gen_epilogue
83d831a tcg: Remove TCG_TARGET_SUPPORT_MIRROR
c17d769 tcg/arm: Support split-wx code generation
de7df42 tcg/mips: Support split-wx code generation
67a82b1 tcg/mips: Do not assert on relocation overflow
aa7ab4a accel/tcg: Add mips support to alloc_code_gen_buffer_splitwx_memfd
73a9a60 tcg/riscv: Support split-wx code generation
7918fe6 tcg/riscv: Remove branch-over-branch fallback
28609d5 tcg/riscv: Fix branch range checks
f38e4af tcg/s390: Support split-wx code generation
c9424fa tcg/s390: Use tcg_tbrel_diff
906b64e tcg/sparc: Support split-wx code generation
c3d95d3 tcg/sparc: Use tcg_tbrel_diff
5e93e3f tcg/ppc: Support split-wx code generation
c6f96d3 tcg/ppc: Use tcg_out_mem_long to reset TCG_REG_TB
6e14825 tcg/ppc: Use tcg_tbrel_diff
9d13a43 tcg: Introduce tcg_tbrel_diff
b3a4cc9 tcg/tci: Push const down through bytecode reading
e99b4b5 disas: Push const down through host disassembly
037e61a tcg/aarch64: Support split-wx code generation
10fa804 tcg/aarch64: Use B not BL for tcg_out_goto_long
18ca275 tcg/i386: Support split-wx code generation
9a00674 tcg: Return the TB pointer from the rx region from exit_tb
ee9fbce accel/tcg: Support split-wx for darwin/iOS with vm_remap
2741957 accel/tcg: Support split-wx for linux with memfd
0ecfec9 tcg: Add --accel tcg,split-wx property
739ffcd tcg: Use Error with alloc_code_gen_buffer
1fab73c tcg: Make tb arg to synchronize_from_tb const
50f080a tcg: Make DisasContextBase.tb const
9d57e45 tcg: Adjust tb_target_set_jmp_target for split-wx
2fefc98 tcg: Adjust tcg_register_jit for const
4526dc1 tcg: Adjust tcg_out_label for const
fb408aa tcg: Adjust tcg_out_call for const
9a15914 tcg: Adjust TCGLabel for const
f1dac59 tcg: Introduce tcg_splitwx_to_{rx,rw}
2afe62d tcg: Add in_code_gen_buffer
139fe29 tcg: Move tcg epilogue pointer out of TCGContext
e84cfd4 tcg: Move tcg prologue pointer out of TCGContext
aa785ce util: Specialize flush_idcache_range for aarch64
f97349b util: Enhance flush_icache_range with separate data pointer
69b0fb6 util: Extract flush_icache_range to cacheflush.c
a517bf2 tcg: Do not flush icache for interpreter

=== OUTPUT BEGIN ===
1/43 Checking commit a517bf25ece8 (tcg: Do not flush icache for interpreter)
2/43 Checking commit 69b0fb655b97 (util: Extract flush_icache_range to cacheflush.c)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#30: 
new file mode 100644

WARNING: architecture specific defines should be avoided
#45: FILE: include/qemu/cacheflush.h:11:
+#if defined(__i386__) || defined(__x86_64__) || defined(__s390__)

WARNING: architecture specific defines should be avoided
#279: FILE: util/cacheflush.c:12:
+#if defined(__i386__) || defined(__x86_64__) || defined(__s390__)

WARNING: architecture specific defines should be avoided
#285: FILE: util/cacheflush.c:18:
+#ifdef __OpenBSD__

total: 0 errors, 4 warnings, 232 lines checked

Patch 2/43 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
3/43 Checking commit f97349b2f447 (util: Enhance flush_icache_range with separate data pointer)
4/43 Checking commit aa785cea119a (util: Specialize flush_idcache_range for aarch64)
ERROR: externs should be avoided in .c files
#38: FILE: util/cacheflush.c:21:
+extern void sys_icache_invalidate(void *start, size_t len);

ERROR: externs should be avoided in .c files
#39: FILE: util/cacheflush.c:22:
+extern void sys_dcache_flush(void *start, size_t len);

total: 2 errors, 0 warnings, 81 lines checked

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

5/43 Checking commit e84cfd426b59 (tcg: Move tcg prologue pointer out of TCGContext)
6/43 Checking commit 139fe2906496 (tcg: Move tcg epilogue pointer out of TCGContext)
7/43 Checking commit 2afe62dac7ab (tcg: Add in_code_gen_buffer)
8/43 Checking commit f1dac59ad324 (tcg: Introduce tcg_splitwx_to_{rx,rw})
9/43 Checking commit 9a15914a4ffe (tcg: Adjust TCGLabel for const)
10/43 Checking commit fb408aa522c8 (tcg: Adjust tcg_out_call for const)
11/43 Checking commit 4526dc1efc87 (tcg: Adjust tcg_out_label for const)
12/43 Checking commit 2fefc98c500f (tcg: Adjust tcg_register_jit for const)
13/43 Checking commit 9d57e45392ec (tcg: Adjust tb_target_set_jmp_target for split-wx)
14/43 Checking commit 50f080a4a743 (tcg: Make DisasContextBase.tb const)
15/43 Checking commit 1fab73c7f624 (tcg: Make tb arg to synchronize_from_tb const)
16/43 Checking commit 739ffcd04da6 (tcg: Use Error with alloc_code_gen_buffer)
17/43 Checking commit 0ecfec97dfe1 (tcg: Add --accel tcg,split-wx property)
18/43 Checking commit 27419576cb75 (accel/tcg: Support split-wx for linux with memfd)
19/43 Checking commit ee9fbce7c465 (accel/tcg: Support split-wx for darwin/iOS with vm_remap)
ERROR: externs should be avoided in .c files
#25: FILE: accel/tcg/translate-all.c:1172:
+extern kern_return_t mach_vm_remap(vm_map_t target_task,

total: 1 errors, 0 warnings, 82 lines checked

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

20/43 Checking commit 9a00674ad0e1 (tcg: Return the TB pointer from the rx region from exit_tb)
21/43 Checking commit 18ca27599eb0 (tcg/i386: Support split-wx code generation)
22/43 Checking commit 10fa80472d77 (tcg/aarch64: Use B not BL for tcg_out_goto_long)
23/43 Checking commit 037e61ad2960 (tcg/aarch64: Support split-wx code generation)
24/43 Checking commit e99b4b588d9e (disas: Push const down through host disassembly)
25/43 Checking commit b3a4cc9903d8 (tcg/tci: Push const down through bytecode reading)
26/43 Checking commit 9d13a43dfb60 (tcg: Introduce tcg_tbrel_diff)
27/43 Checking commit 6e14825e8f8c (tcg/ppc: Use tcg_tbrel_diff)
28/43 Checking commit c6f96d34b501 (tcg/ppc: Use tcg_out_mem_long to reset TCG_REG_TB)
29/43 Checking commit 5e93e3ff9023 (tcg/ppc: Support split-wx code generation)
30/43 Checking commit c3d95d3abc1b (tcg/sparc: Use tcg_tbrel_diff)
31/43 Checking commit 906b64e9197f (tcg/sparc: Support split-wx code generation)
32/43 Checking commit c9424faf7d4b (tcg/s390: Use tcg_tbrel_diff)
33/43 Checking commit f38e4afef0b4 (tcg/s390: Support split-wx code generation)
34/43 Checking commit 28609d5dbe01 (tcg/riscv: Fix branch range checks)
35/43 Checking commit 7918fe608ce9 (tcg/riscv: Remove branch-over-branch fallback)
36/43 Checking commit 73a9a602ab6d (tcg/riscv: Support split-wx code generation)
37/43 Checking commit aa7ab4a68c1b (accel/tcg: Add mips support to alloc_code_gen_buffer_splitwx_memfd)
WARNING: architecture specific defines should be avoided
#25: FILE: accel/tcg/translate-all.c:1143:
+#ifdef __mips__

WARNING: architecture specific defines should be avoided
#43: FILE: accel/tcg/translate-all.c:1160:
+#ifdef __mips__

total: 0 errors, 2 warnings, 68 lines checked

Patch 37/43 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
38/43 Checking commit 67a82b1d6984 (tcg/mips: Do not assert on relocation overflow)
39/43 Checking commit de7df427c946 (tcg/mips: Support split-wx code generation)
40/43 Checking commit c17d76906b38 (tcg/arm: Support split-wx code generation)
41/43 Checking commit 83d831a780f6 (tcg: Remove TCG_TARGET_SUPPORT_MIRROR)
42/43 Checking commit 7346927872d0 (tcg: Constify tcg_code_gen_epilogue)
43/43 Checking commit c3f5ca780551 (tcg: Constify TCGLabelQemuLdst.raddr)
=== OUTPUT END ===

Test command exited with code: 1


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