From: Igor Munkin <imun@tarantool.org> To: Konstantin Osipov <kostja.osipov@gmail.com> Cc: tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH] Move txn from shema to a separate module (use C API instead of FFI) Date: Thu, 28 Nov 2019 17:03:40 +0300 [thread overview] Message-ID: <20191128140340.GB1214@tarantool.org> (raw) In-Reply-To: <20191128131804.GE29714@atlas> Kostja, On 28.11.19, Konstantin Osipov wrote: > * Igor Munkin <imun@tarantool.org> [19/11/28 16:03]: > > LuaJIT v2.1 provides trace stitching feature (for more info see > > here[1]), so strictly saying, it doesn't kill JIT but yes, performance > > is nerfed comparing to traces recorded for an FFI code. I have no > > proofs/benchmarks for now, so it sounds kinda bullshit, but I look > > forward to make some in the nearest future. > > > > Furthermore, FFI is not a silver bullet considering this issue[2]. > > I fully agree on all points, there is some buggy trace stitching, > there is an overhead of switching to Lua/C and back, > (FFI is slower in Lua/C partly for this reason), and > FFI is not a silver bullet. We faced several platform failures recently in FFI machinery, thus I can't claim which one LuaJIT part from these two is much more buggy. > > Despite all of the above we should be aiming at using FFI more, > not less, going forward, don't you agree? > Why should we be aiming at using FFI more? The root cause is that current fiber machinery (as well as some parts of triggers mechanism) doesn't respect the Lua coroutine switch semantics, thereby breaking trace recording. Lua-C API implicitly (or non-intentionally) prevents breakage by JIT trace aborts when recording FUNCC. Therefore, I guess we should be aiming either at changing fiber switching to the one respecting the LuaJIT runtime or at tuning JIT compiler way more regarding the Lua-C usage. Besides, we can't fully prevent platform failures if there is an FFI misusage in users code. > What should be the rule of thumb in your opinion, ffi or > lua/c? If you want to know my rule of thumb: FFI is for external existing libraries to be used in Lua code (and all compiler related benefits are nothing more than a godsend consequence, since all guest stack manipulations are implemented in LuaJIT runtime, not in an external code) and Lua-C is a well-designed and well-documented API for embedding Lua into a host application / extending Lua with external low-lewel libs. I totally do not insist on my point of view, since everyone has it's own vision on LuaJIT features. > > > > plain Lua 5.3 and forget about grievances with LuaJIT altogether. > > > > JIT is not the only killing feature provided by LuaJIT and > > infrastructure for Lua 5.1 is much richer. > > > > > > > > Nick Zavaritsky had a patch that would detect sandwich stacks in > > > runtime and assert. Nobody had time to look at it back then - > > > > Could you please provide the issue/link for this changeset, I'll take a > > look on it with pleasure. > > Nick Zavaritsky himself is the only link here, unfortunately. > Perhaps he has this patch in one of his personal branches. I > suggest someone contacts him :) > > -- > Konstantin Osipov, Moscow, Russia -- Best regards, IM
next prev parent reply other threads:[~2019-11-28 14:05 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-26 13:13 Leonid 2019-11-26 21:05 ` Konstantin Osipov 2019-11-26 21:17 ` Alexander Turenko 2019-11-27 8:31 ` Konstantin Osipov 2019-11-28 8:10 ` Leonid Vasiliev 2019-11-28 12:34 ` Konstantin Osipov 2019-11-28 13:00 ` Igor Munkin 2019-11-28 13:18 ` Konstantin Osipov 2019-11-28 14:03 ` Igor Munkin [this message] 2019-11-28 15:58 ` Konstantin Osipov 2019-11-28 18:36 ` Igor Munkin 2019-11-29 5:30 ` Konstantin Osipov 2019-11-29 17:43 ` Igor Munkin 2019-11-29 5:41 ` Konstantin Osipov 2019-11-29 17:37 ` Igor Munkin 2019-12-04 13:05 ` Leonid Vasiliev 2019-12-04 13:15 ` Konstantin Osipov 2019-12-05 8:27 ` Leonid Vasiliev 2020-03-20 18:48 ` Igor Munkin 2020-03-20 19:27 ` Konstantin Osipov 2019-12-11 22:21 ` Alexander Turenko 2019-12-12 8:23 ` Leonid Vasiliev 2020-01-15 17:05 ` Alexander Turenko 2019-12-12 8:49 ` Konstantin Osipov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191128140340.GB1214@tarantool.org \ --to=imun@tarantool.org \ --cc=kostja.osipov@gmail.com \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH] Move txn from shema to a separate module (use C API instead of FFI)' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox