qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 00/70] TCI fixes and cleanups


From: Alex Bennée
Subject: Re: [PATCH v3 00/70] TCI fixes and cleanups
Date: Fri, 05 Mar 2021 16:55:27 +0000
User-agent: mu4e 1.5.8; emacs 28.0.50

Alex Bennée <alex.bennee@linaro.org> writes:

> Richard Henderson <richard.henderson@linaro.org> writes:
>
>> Changes since v2:
>>   * 20-something patches are now upstream.
>>   * Increase testing timeout for tci.
>>   * Gitlab testing for tci w/ 32-bit host.
>
> Hmm that fails with this applied on the current master:
>
> cc -Ilibqemu-i386-linux-user.fa.p -I. -I.. -Itarget/i386 -I../target/i386 
> -I../linux-user/host/i386 -Ilinux-user -I../linux-user -Ilinux-user/i386 
> -I../linux-user/i386 -I../capstone/include/capstone -Itrace -Iqapi -Iui 
> -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
> -fdiagnostics-color=auto -pipe -Wall -Winvalid-pch -Werror -std=gnu99 -O2 -g 
> -isystem /builds/stsquad/qemu/linux-headers -isystem linux-headers -iquote . 
> -iquote /builds/stsquad/qemu -iquote /builds/stsquad/qemu/include -iquote 
> /builds/stsquad/qemu/disas/libvixl -iquote /builds/stsquad/qemu/tcg/tci 
> -iquote /builds/stsquad/qemu/accel/tcg -pthread -U_FORTIFY_SOURCE 
> -D_FORTIFY_SOURCE=2 -m32 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 
> -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef 
> -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv 
> -m32 -Wold-style-declaration -Wold-style-definition -Wtype-limits 
> -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body 
> -Wnested-externs -Wendif-labels -Wexpansion-to-defined 
> -Wimplicit-fallthrough=2 -Wno-missing-include-dirs -Wno-shift-negative-value 
> -Wno-psabi -fstack-protector-strong -fPIC -isystem../linux-headers 
> -isystemlinux-headers -DNEED_CPU_H 
> '-DCONFIG_TARGET="i386-linux-user-config-target.h"' 
> '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ 
> libqemu-i386-linux-user.fa.p/tcg_tci.c.o -MF 
> libqemu-i386-linux-user.fa.p/tcg_tci.c.o.d -o 
> libqemu-i386-linux-user.fa.p/tcg_tci.c.o -c ../tcg/tci.c
> ../tcg/tci.c: In function 'tcg_qemu_tb_exec':
> ../tcg/tci.c:317:37: error: passing argument 1 of 'g2h' makes pointer from 
> integer without a cast [-Werror=int-conversion]
>   317 | # define qemu_ld_ub      ldub_p(g2h(taddr))
>       |                                     ^~~~~
>       |                                     |
>       |                                     target_ulong {aka unsigned int}
> ../tcg/tci.c:923:25: note: in expansion of macro 'qemu_ld_ub'
>   923 |                 tmp32 = qemu_ld_ub;
>       |                         ^~~~~~~~~~
>
> and more:
>
> https://gitlab.com/stsquad/qemu/-/jobs/1076231320

Looks like it was broken by:

3e8f1628e864201692aa28996f8f64f9761555af is the first bad commit
commit 3e8f1628e864201692aa28996f8f64f9761555af
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Fri Feb 12 10:48:43 2021 -0800

    exec: Use cpu_untagged_addr in g2h; split out g2h_untagged

    Use g2h_untagged in contexts that have no cpu, e.g. the binary
    loaders that operate before the primary cpu is created.  As a
    colollary, target_mmap and friends must use untagged addresses,
    since they are used by the loaders.

    Use g2h_untagged on values returned from target_mmap, as the
    kernel never applies a tag itself.

    Use g2h_untagged on all pc values.  The only current user of
    tags, aarch64, removes tags from code addresses upon branch,
    so "pc" is always untagged.

    Use g2h with the cpu context on hand wherever possible.

    Use g2h_untagged in lock_user, which will be updated soon.

    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20210212184902.1251044-13-richard.henderson@linaro.org
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


>
>
>
>>
>>
>> r~
>>
>>
>> Richard Henderson (70):
>>   gdbstub: Fix handle_query_xfer_auxv
>>   tcg: Split out tcg_raise_tb_overflow
>>   tcg: Manage splitwx in tc_ptr_to_region_tree by hand
>>   tcg/tci: Merge identical cases in generation
>>   tcg/tci: Remove tci_read_r8
>>   tcg/tci: Remove tci_read_r8s
>>   tcg/tci: Remove tci_read_r16
>>   tcg/tci: Remove tci_read_r16s
>>   tcg/tci: Remove tci_read_r32
>>   tcg/tci: Remove tci_read_r32s
>>   tcg/tci: Reduce use of tci_read_r64
>>   tcg/tci: Merge basic arithmetic operations
>>   tcg/tci: Merge extension operations
>>   tcg/tci: Remove ifdefs for TCG_TARGET_HAS_ext32[us]_i64
>>   tcg/tci: Merge bswap operations
>>   tcg/tci: Merge mov, not and neg operations
>>   tcg/tci: Rename tci_read_r to tci_read_rval
>>   tcg/tci: Split out tci_args_rrs
>>   tcg/tci: Split out tci_args_rr
>>   tcg/tci: Split out tci_args_rrr
>>   tcg/tci: Split out tci_args_rrrc
>>   tcg/tci: Split out tci_args_l
>>   tcg/tci: Split out tci_args_rrrrrc
>>   tcg/tci: Split out tci_args_rrcl and tci_args_rrrrcl
>>   tcg/tci: Split out tci_args_ri and tci_args_rI
>>   tcg/tci: Reuse tci_args_l for calls.
>>   tcg/tci: Reuse tci_args_l for exit_tb
>>   tcg/tci: Reuse tci_args_l for goto_tb
>>   tcg/tci: Split out tci_args_rrrrrr
>>   tcg/tci: Split out tci_args_rrrr
>>   tcg/tci: Clean up deposit operations
>>   tcg/tci: Reduce qemu_ld/st TCGMemOpIdx operand to 32-bits
>>   tcg/tci: Split out tci_args_{rrm,rrrm,rrrrm}
>>   tcg/tci: Hoist op_size checking into tci_args_*
>>   tcg/tci: Remove tci_disas
>>   tcg/tci: Implement the disassembler properly
>>   tcg: Build ffi data structures for helpers
>>   tcg/tci: Use ffi for calls
>>   tcg/tci: Improve tcg_target_call_clobber_regs
>>   tcg/tci: Move call-return regs to end of tcg_target_reg_alloc_order
>>   tcg/tci: Push opcode emit into each case
>>   tcg/tci: Split out tcg_out_op_rrs
>>   tcg/tci: Split out tcg_out_op_l
>>   tcg/tci: Split out tcg_out_op_p
>>   tcg/tci: Split out tcg_out_op_rr
>>   tcg/tci: Split out tcg_out_op_rrr
>>   tcg/tci: Split out tcg_out_op_rrrc
>>   tcg/tci: Split out tcg_out_op_rrrrrc
>>   tcg/tci: Split out tcg_out_op_rrrbb
>>   tcg/tci: Split out tcg_out_op_rrcl
>>   tcg/tci: Split out tcg_out_op_rrrrrr
>>   tcg/tci: Split out tcg_out_op_rrrr
>>   tcg/tci: Split out tcg_out_op_rrrrcl
>>   tcg/tci: Split out tcg_out_op_{rrm,rrrm,rrrrm}
>>   tcg/tci: Split out tcg_out_op_v
>>   tcg/tci: Split out tcg_out_op_np
>>   tcg/tci: Split out tcg_out_op_r[iI]
>>   tcg/tci: Reserve r13 for a temporary
>>   tcg/tci: Emit setcond before brcond
>>   tcg/tci: Remove tci_write_reg
>>   tcg/tci: Change encoding to uint32_t units
>>   tcg/tci: Implement goto_ptr
>>   tcg/tci: Implement movcond
>>   tcg/tci: Implement andc, orc, eqv, nand, nor
>>   tcg/tci: Implement extract, sextract
>>   tcg/tci: Implement clz, ctz, ctpop
>>   tcg/tci: Implement mulu2, muls2
>>   tcg/tci: Implement add2, sub2
>>   tests/tcg: Increase timeout for TCI
>>   gitlab: Enable cross-i386 builds of TCI
>>
>>  configure                                     |    3 +
>>  meson.build                                   |    9 +-
>>  include/exec/helper-ffi.h                     |  115 ++
>>  include/exec/helper-tcg.h                     |   24 +-
>>  include/tcg/tcg-opc.h                         |    6 +-
>>  include/tcg/tcg.h                             |    1 +
>>  target/hppa/helper.h                          |    2 +
>>  target/i386/ops_sse_header.h                  |    6 +
>>  target/m68k/helper.h                          |    1 +
>>  target/ppc/helper.h                           |    3 +
>>  tcg/tci/tcg-target-con-set.h                  |    2 +-
>>  tcg/tci/tcg-target.h                          |   81 +-
>>  disas/tci.c                                   |   61 -
>>  gdbstub.c                                     |   17 +-
>>  tcg/tcg.c                                     |  117 +-
>>  tcg/tci.c                                     | 1536 ++++++++++-------
>>  tcg/tci/tcg-target.c.inc                      |  926 +++++-----
>>  .gitlab-ci.d/crossbuilds.yml                  |   17 +-
>>  tcg/tci/README                                |   20 +-
>>  .../dockerfiles/fedora-i386-cross.docker      |    1 +
>>  tests/docker/dockerfiles/fedora.docker        |    1 +
>>  tests/tcg/Makefile.target                     |    6 +-
>>  22 files changed, 1727 insertions(+), 1228 deletions(-)
>>  create mode 100644 include/exec/helper-ffi.h
>>  delete mode 100644 disas/tci.c


-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]