mbox series

[PULL,00/32] tcg patch queue

Message ID 20181214031923.29527-1-richard.henderson@linaro.org
Headers show
Series tcg patch queue | expand

Message

Richard Henderson Dec. 14, 2018, 3:18 a.m. UTC
The following changes since commit 2d894e48362ad2a576fca929dcca1787f43a8af6:

  Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging (2018-12-13 17:50:45 +0000)

are available in the Git repository at:

  https://github.com/rth7680/qemu.git tags/pull-tcg-20181213

for you to fetch changes up to 99f70ba5b6b4566509b2069a8d29c6686b8115de:

  xxhash: match output against the original xxhash32 (2018-12-13 18:56:11 -0600)

----------------------------------------------------------------
- Remove retranslation remenents
- Return success from patch_reloc
- Preserve 32-bit values as zero-extended on x86_64
- Make bswap during memory ops as optional
- Cleanup xxhash

----------------------------------------------------------------
Alistair Francis (1):
      tcg/mips: Improve the add2/sub2 command to use TCG_TARGET_REG_BITS

Emilio G. Cota (5):
      tcg: Drop nargs from tcg_op_insert_{before,after}
      qht-bench: document -p flag
      exec: introduce qemu_xxhash{2,4,5,6,7}
      include: move exec/tb-hash-xx.h to qemu/xxhash.h
      xxhash: match output against the original xxhash32

Richard Henderson (26):
      tcg/i386: Always use %ebp for TCG_AREG0
      tcg/i386: Move TCG_REG_CALL_STACK from define to enum
      tcg/aarch64: Remove reloc_pc26_atomic
      tcg/aarch64: Fold away "noaddr" branch routines
      tcg/arm: Remove reloc_pc24_atomic
      tcg/arm: Fold away "noaddr" branch routines
      tcg/ppc: Fold away "noaddr" branch routines
      tcg/s390: Remove retranslation code
      tcg/sparc: Remove retranslation code
      tcg/mips: Remove retranslation code
      tcg: Return success from patch_reloc
      tcg/i386: Return false on failure from patch_reloc
      tcg/aarch64: Return false on failure from patch_reloc
      tcg/arm: Return false on failure from patch_reloc
      tcg/ppc: Return false on failure from patch_reloc
      tcg/s390x: Return false on failure from patch_reloc
      tcg/i386: Propagate is64 to tcg_out_qemu_ld_direct
      tcg/i386: Propagate is64 to tcg_out_qemu_ld_slow_path
      tcg/i386: Implement INDEX_op_extr{lh}_i64_i32 for 32-bit guests
      tcg/i386: Assume 32-bit values are zero-extended
      tcg/i386: Precompute all guest_base parameters
      tcg/i386: Add setup_guest_base_seg for FreeBSD
      tcg: Clean up generic bswap32
      tcg: Clean up generic bswap64
      tcg/optimize: Optimize bswap
      tcg: Add TCG_TARGET_HAS_MEMORY_BSWAP

 include/exec/tb-hash.h                       |   4 +-
 include/{exec/tb-hash-xx.h => qemu/xxhash.h} |  47 ++++--
 tcg/aarch64/tcg-target.h                     |   1 +
 tcg/arm/tcg-target.h                         |   1 +
 tcg/i386/tcg-target.h                        |  17 +--
 tcg/mips/tcg-target.h                        |   1 +
 tcg/ppc/tcg-target.h                         |   1 +
 tcg/s390/tcg-target.h                        |   1 +
 tcg/sparc/tcg-target.h                       |   1 +
 tcg/tcg.h                                    |   4 +-
 tcg/tci/tcg-target.h                         |   2 +
 tcg/aarch64/tcg-target.inc.c                 |  71 +++------
 tcg/arm/tcg-target.inc.c                     |  55 +++----
 tcg/i386/tcg-target.inc.c                    | 208 ++++++++++++--------------
 tcg/mips/tcg-target.inc.c                    |  12 +-
 tcg/optimize.c                               |  16 +-
 tcg/ppc/tcg-target.inc.c                     |  60 ++++----
 tcg/s390/tcg-target.inc.c                    |  45 +++---
 tcg/sparc/tcg-target.inc.c                   |  13 +-
 tcg/tcg-op.c                                 | 215 ++++++++++++++++++++-------
 tcg/tcg.c                                    |  18 +--
 tcg/tci/tcg-target.inc.c                     |   3 +-
 tests/qht-bench.c                            |   5 +-
 util/qsp.c                                   |  14 +-
 24 files changed, 452 insertions(+), 363 deletions(-)
 rename include/{exec/tb-hash-xx.h => qemu/xxhash.h} (73%)

Comments

Peter Maydell Dec. 15, 2018, 9:18 p.m. UTC | #1
On Fri, 14 Dec 2018 at 03:19, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> The following changes since commit 2d894e48362ad2a576fca929dcca1787f43a8af6:

>

>   Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging (2018-12-13 17:50:45 +0000)

>

> are available in the Git repository at:

>

>   https://github.com/rth7680/qemu.git tags/pull-tcg-20181213

>

> for you to fetch changes up to 99f70ba5b6b4566509b2069a8d29c6686b8115de:

>

>   xxhash: match output against the original xxhash32 (2018-12-13 18:56:11 -0600)

>

> ----------------------------------------------------------------

> - Remove retranslation remenents

> - Return success from patch_reloc

> - Preserve 32-bit values as zero-extended on x86_64

> - Make bswap during memory ops as optional

> - Cleanup xxhash


This didn't pass 'make check' on sparc64 host.
It looks like the handful of tests that exercise TCG
in the process of doing what they do failed, and there
was a tcg assert in there too:
ERROR:/home/pm215/qemu/tests/bios-tables-test.c:607:test_smbios_structs:
assertion failed: (test_bit(data->required_struct_types[i],
struct_bitmap))
ERROR:/home/pm215/qemu/tests/bios-tables-test.c:607:test_smbios_structs:
assertion failed: (test_bit(data->required_struct_types[i],
struct_bitmap))
  /x86_64/pxe/ipv4/pc/e1000:
qemu-system-x86_64: /home/pm215/qemu/tcg/sparc/tcg-target.inc.c:319:
patch_reloc: Assertion `check_fit_ptr(value, 13)' failed.
ERROR:/home/pm215/qemu/tests/boot-sector.c:161:boot_sector_test:
assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
ERROR:/home/pm215/qemu/tests/boot-sector.c:161:boot_sector_test:
assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
ERROR:/home/pm215/qemu/tests/boot-sector.c:161:boot_sector_test:
assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
ERROR:/home/pm215/qemu/tests/boot-sector.c:161:boot_sector_test:
assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
ERROR:/home/pm215/qemu/tests/vmgenid-test.c:104:read_guid_from_memory:
assertion failed: (vmgenid_addr)
ERROR:/home/pm215/qemu/tests/vmgenid-test.c:104:read_guid_from_memory:
assertion failed: (vmgenid_addr)

So I suspect there's a sparc TCG issue here.

On s390 I also saw
ERROR:/home/linux1/qemu/tests/migration-test.c:355:migrate_set_parameter:
assertion failed: (qdict_haskey(rsp, "return"))

but that may be an unrelated intermittent.

thanks
-- PMM
Richard Henderson Dec. 16, 2018, 7:02 a.m. UTC | #2
On 12/15/18 1:18 PM, Peter Maydell wrote:
> This didn't pass 'make check' on sparc64 host.

> It looks like the handful of tests that exercise TCG

> in the process of doing what they do failed, and there

> was a tcg assert in there too:

...
> qemu-system-x86_64: /home/pm215/qemu/tcg/sparc/tcg-target.inc.c:319:

> patch_reloc: Assertion `check_fit_ptr(value, 13)' failed.


If there were extra asserts, they should have been outside tcg/foo/*.  Any
extra asserts inside I cannot explain.  Unfortunately, sparc and s390 are two
that I cannot test directly.


r~
Peter Maydell Dec. 16, 2018, 12:43 p.m. UTC | #3
On Sun, 16 Dec 2018 at 07:03, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> On 12/15/18 1:18 PM, Peter Maydell wrote:

> > This didn't pass 'make check' on sparc64 host.

> > It looks like the handful of tests that exercise TCG

> > in the process of doing what they do failed, and there

> > was a tcg assert in there too:

> ...

> > qemu-system-x86_64: /home/pm215/qemu/tcg/sparc/tcg-target.inc.c:319:

> > patch_reloc: Assertion `check_fit_ptr(value, 13)' failed.

>

> If there were extra asserts, they should have been outside tcg/foo/*.  Any

> extra asserts inside I cannot explain.  Unfortunately, sparc and s390 are two

> that I cannot test directly.


You have access to the gcc compile farm, right? The sparc
tests run on gcc202.fsffrance.org.

Our s390 system I can get you access to for testing purposes
if necessary.

thanks
-- PMM
Richard Henderson Dec. 16, 2018, 8:11 p.m. UTC | #4
On 12/16/18 4:43 AM, Peter Maydell wrote:
> On Sun, 16 Dec 2018 at 07:03, Richard Henderson

> <richard.henderson@linaro.org> wrote:

>>

>> On 12/15/18 1:18 PM, Peter Maydell wrote:

>>> This didn't pass 'make check' on sparc64 host.

>>> It looks like the handful of tests that exercise TCG

>>> in the process of doing what they do failed, and there

>>> was a tcg assert in there too:

>> ...

>>> qemu-system-x86_64: /home/pm215/qemu/tcg/sparc/tcg-target.inc.c:319:

>>> patch_reloc: Assertion `check_fit_ptr(value, 13)' failed.

>>

>> If there were extra asserts, they should have been outside tcg/foo/*.  Any

>> extra asserts inside I cannot explain.  Unfortunately, sparc and s390 are two

>> that I cannot test directly.

> 

> You have access to the gcc compile farm, right? The sparc

> tests run on gcc202.fsffrance.org.


Ah.  I thought that machine had gone away.

That assertion turns out to be an existing bug.  I'm not sure what within this
patch set triggers it, but my solution in the short term will be to revert
ab20bdc1162.

Would you like me to re-send the pull request with this fixed, or may I address
this in the next patch set?


r~
Peter Maydell Dec. 16, 2018, 9:14 p.m. UTC | #5
On Sun, 16 Dec 2018 at 20:11, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> On 12/16/18 4:43 AM, Peter Maydell wrote:

> > On Sun, 16 Dec 2018 at 07:03, Richard Henderson

> > <richard.henderson@linaro.org> wrote:

> > You have access to the gcc compile farm, right? The sparc

> > tests run on gcc202.fsffrance.org.

>

> Ah.  I thought that machine had gone away.


Yeah, I think there were hardware issues, but they have
been resolved.

> That assertion turns out to be an existing bug.  I'm not sure what within this

> patch set triggers it, but my solution in the short term will be to revert

> ab20bdc1162.

>

> Would you like me to re-send the pull request with this fixed, or may I address

> this in the next patch set?


I need a fix before I can apply the pull request (as part of
the v2 pullreq is OK), because this is part of my standard test
set for merges and so I can't merge anything that makes it fail
tests.

thanks
-- PMM