[Tarantool-patches] [PATCH v2 0/2] Prevent JIT engine breakage on fibers switch-over

Igor Munkin imun at tarantool.org
Wed Sep 23 22:06:17 MSK 2020


There was a long discussion about the patch correctness and its
performance impact in v1 thread[1]. The benchmarks provided in v1 showed
this implementation as the least nerfing the platform overall
performance even for such synthetic test[2]. One can find the relevant
benchmarks results in the corresponding patches.

Changes in v2:
* implement the callback in a different way to negate its perf impact

@ChangeLog:
* Fixed fibers switch-over to prevent JIT machinery misbehaviour. Trace
  recording is aborted when fiber yields the execution. The yield
  occuring while mcode is being run leads to the platform panic
  (gh-1700, gh-4491).

Branch: https://github.com/tarantool/tarantool/tree/imun/gh-1700-abort-recording-on-fiber-switch
Issues:
* https://github.com/tarantool/tarantool/issues/1700
* https://github.com/tarantool/tarantool/issues/4491

[1]: https://lists.tarantool.org/pipermail/tarantool-patches/2020-March/015290.html
[2]: https://gist.github.com/igormunkin/7e0cf48005bd003ffbdf30181eedb40e

Igor Munkin (2):
  fiber: introduce a callback for fibers switch-over
  lua: abort trace recording on fiber yield

 src/lib/core/fiber.c                          | 10 ++++
 src/lua/utils.c                               | 57 ++++++++++++++++++
 ...-4491-coio-wait-leads-to-segfault.test.lua | 53 +++++++++++++++++
 test/unit/CMakeLists.txt                      | 59 ++++++++++---------
 test/unit/core_test_utils.c                   | 37 ++++++++++++
 5 files changed, 188 insertions(+), 28 deletions(-)
 create mode 100755 test/app-tap/gh-4491-coio-wait-leads-to-segfault.test.lua
 create mode 100644 test/unit/core_test_utils.c

-- 
2.25.0



More information about the Tarantool-patches mailing list