[Tarantool-patches] [PATCH luajit v2 0/5] jit: add exception unwinding

Maxim Kokryashkin max.kokryashkin at gmail.com
Tue Mar 14 15:01:42 MSK 2023


This patchset adopts the LuaJIT machinery for unwinding
exceptions raised while trace execution.

The snap-restore test is disabled, since after this patchset
it requires dynamic calculation for amount of allocated
stack slots. That test should be rewritten in a
less fragile manner.

Changes in v2:
- Fixed comments as per review by Sergey
- Added the test case for IR_RENAME.

Branch: https://github.com/tarantool/luajit/tree/fckxorg/gh-7745-exceptions-on-traces
Issue: https://github.com/tarantool/tarantool/issues/7745
PR: https://github.com/tarantool/tarantool/pull/8308

Maxim Kokryashkin (1):
  test: disable `lj-603-snap-restore` test

Mike Pall (4):
  Handle on-trace OOM errors from helper functions.
  Disable unreliable assertion for external frame unwinding.
  OSX: Disable unreliable assertion for external frame unwinding.
  Fix IR_RENAME snapshot number. Follow-up fix for a32aeadc.

 doc/status.html                               |   7 -
 src/lj_arch.h                                 |  12 +
 src/lj_asm.c                                  |  86 ++++--
 src/lj_dispatch.h                             |   4 +-
 src/lj_err.c                                  | 279 +++++++++++++++++-
 src/lj_err.h                                  |  19 +-
 src/lj_ffrecord.c                             |   2 +
 src/lj_jit.h                                  |   2 +
 src/lj_mcode.c                                |   5 +-
 src/lj_opt_loop.c                             |   1 +
 src/lj_record.c                               |   3 +-
 src/lj_snap.c                                 |   1 +
 src/lj_state.c                                |   1 +
 src/lj_target_x86.h                           |   2 +
 src/lj_trace.c                                |  61 +++-
 src/lj_trace.h                                |   3 +
 src/lj_vm.h                                   |   3 +
 src/vm_arm.dasc                               |   3 +-
 src/vm_arm64.dasc                             |   4 +-
 src/vm_mips.dasc                              |   9 +-
 src/vm_mips64.dasc                            |  10 +-
 src/vm_ppc.dasc                               |   3 +-
 src/vm_x64.dasc                               |   6 +-
 src/vm_x86.dasc                               |   4 +-
 .../gh-7745-ir-rename.test.lua                |  20 ++
 .../gh-7745-oom-on-trace.test.lua             |  22 ++
 .../lj-603-err-snap-restore.test.lua          |   4 +-
 27 files changed, 516 insertions(+), 60 deletions(-)
 create mode 100644 test/tarantool-tests/gh-7745-ir-rename.test.lua
 create mode 100644 test/tarantool-tests/gh-7745-oom-on-trace.test.lua

--
2.39.0



More information about the Tarantool-patches mailing list