[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/2] tcg: Fix launchpad 1824853
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 0/2] tcg: Fix launchpad 1824853 |
Date: |
Tue, 16 Apr 2019 19:25:09 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
On 4/16/19 10:31 AM, Richard Henderson wrote:
> This is a case where we generate more than 64k code for a mere 231
> guest instructions. This hits some assertions within TCG that we're
> not overflowing the uint16_t that we use for representing our
> unwind info.
>
> Fix this by returning an error indication, rather than asserting.
> This lets us try again from tb_gen_code with a lower max_insns.
>
> This should resolve the problem for x86 as a host. There are other
> failure modes wrt out-of-range relocations that might affect the
> RISC hosts. I'm going to leave those for a different patch set.
Very clean way to solve this. Nice cleanup in patch #1 (interesting
Nios2 case), Simple fix in patch #2. It would be fun to trigger the
assert(max_insns > 1) =)
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> Richard Henderson (2):
> tcg: Hoist max_insns computation to tb_gen_code
> tcg: Restart after TB code generation overflow
>
> include/exec/exec-all.h | 4 +--
> include/exec/translator.h | 3 +-
> accel/tcg/translate-all.c | 54 +++++++++++++++++++++++++++++------
> accel/tcg/translator.c | 15 ++--------
> target/alpha/translate.c | 4 +--
> target/arm/translate.c | 4 +--
> target/cris/translate.c | 10 +------
> target/hppa/translate.c | 5 ++--
> target/i386/translate.c | 4 +--
> target/lm32/translate.c | 10 +------
> target/m68k/translate.c | 4 +--
> target/microblaze/translate.c | 10 +------
> target/mips/translate.c | 4 +--
> target/moxie/translate.c | 11 ++-----
> target/nios2/translate.c | 14 ++-------
> target/openrisc/translate.c | 4 +--
> target/ppc/translate.c | 4 +--
> target/riscv/translate.c | 4 +--
> target/s390x/translate.c | 4 +--
> target/sh4/translate.c | 4 +--
> target/sparc/translate.c | 4 +--
> target/tilegx/translate.c | 12 +-------
> target/tricore/translate.c | 16 ++---------
> target/unicore32/translate.c | 10 +------
> target/xtensa/translate.c | 4 +--
> tcg/tcg.c | 4 +++
> 26 files changed, 93 insertions(+), 133 deletions(-)
>