All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] tcg: Fix launchpad 1824853
@ 2019-04-16  8:31 Richard Henderson
  2019-04-16  8:31 ` [Qemu-devel] [PATCH 1/2] tcg: Hoist max_insns computation to tb_gen_code Richard Henderson
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Richard Henderson @ 2019-04-16  8:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell

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.


r~


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(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-04-20  1:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-16  8:31 [Qemu-devel] [PATCH 0/2] tcg: Fix launchpad 1824853 Richard Henderson
2019-04-16  8:31 ` [Qemu-devel] [PATCH 1/2] tcg: Hoist max_insns computation to tb_gen_code Richard Henderson
2019-04-19 21:01   ` Alistair Francis
2019-04-19 21:01     ` Alistair Francis
2019-04-16  8:31 ` [Qemu-devel] [PATCH 2/2] tcg: Restart after TB code generation overflow Richard Henderson
2019-04-16 17:47   ` Eric Blake
2019-04-16 17:55     ` Philippe Mathieu-Daudé
2019-04-16 18:48     ` Richard Henderson
2019-04-16 17:25 ` [Qemu-devel] [PATCH 0/2] tcg: Fix launchpad 1824853 Philippe Mathieu-Daudé
2019-04-19 23:07 ` Alex Bennée
2019-04-20  1:38   ` Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.