From: Sergey Kaplun via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: Maxim Kokryashkin <max.kokryashkin@gmail.com> Cc: tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH luajit] sysprof: disable proto and trace dumps in default Date: Thu, 16 Jun 2022 09:56:14 +0300 [thread overview] Message-ID: <YqrUDsqZ0D/5w4d7@root> (raw) In-Reply-To: <20220612185220.502537-1-m.kokryashkin@tarantool.org> Hi, Maxim! Thanks for the patch! LGTM, except a few nits below. On 12.06.22, Maxim Kokryashkin wrote: > There is no need to dump proto or trace information for sysprof > in the default mode. Moreover, attempts to do so will lead to > segmentation fault due to uninitialized buffer. This commit > disables proto and trace dumps in the default mode. > > Resolves tarantool/tarantool#7264 > --- > PR: https://github.com/tarantool/tarantool/pull/7265 > Branch: https://github.com/tarantool/luajit/tree/fckxorg/gh-7264-dump-proto-default-mode > > src/lj_sysprof.c | 4 +- > ...4-add-proto-trace-sysprof-default.test.lua | 58 +++++++++++++++++++ > 2 files changed, 60 insertions(+), 2 deletions(-) > create mode 100644 test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua > > diff --git a/src/lj_sysprof.c b/src/lj_sysprof.c > index a4a70146..2e9ed9b3 100644 > --- a/src/lj_sysprof.c > +++ b/src/lj_sysprof.c <snipped> > diff --git a/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua b/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua > new file mode 100644 > index 00000000..2d2a756a > --- /dev/null > +++ b/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua > @@ -0,0 +1,58 @@ > +-- Sysprof is implemented for x86 and x64 architectures only. > +local ffi = require("ffi") > +require("utils").skipcond( > + jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux" > + or ffi.abi("gc64"), > + jit.arch.." architecture or "..jit.os.. > + " OS is NIY for sysprof" > +) > + > +local tap = require("tap") > +local jit = require("jit") > + > +local test = tap.test("gh-7264-add-proto-trace-sysprof-default.test.lua") > +test:plan(2) > + > +jit.off() > +jit.flush() > + > +local function allocate() > + local a = {} > + for _ = 1, 1e4 do table.insert(a, "teststring") end Why do we need so many iterations? We can manipulate JIT behaviour by using `jit.opt.start('hotloop=1')`. > + return a > +end > + > +local chunk = [[ > +function lua_global_f() > + local a = 'teststring' Nit: I suggest to use one type of quotes in the whole test. (Also, it is better to use single quotes everywhere (its offline agreement with Igor). > +end > +]] > + > +-- Trace creation during the sysprof runtime. > +jit.on() > + > +local _ = nil Why do we need this variable? (If for the `res, _ =` below, we can just use the single `res = `). > +local res, err = misc.sysprof.start({ mode = "D" }) > +assert(res, err) > +allocate() > +res, _ = misc.sysprof.stop() > +test:ok(res) Nit: please add name for the test. > + > +jit.off() > + > +-- Proto creation during the sysprof runtime. > +res, err = misc.sysprof.start({ mode = "D" }) > +assert(res, err) > + > +res, err = loadstring(chunk) > +assert(res, err) > +res() > + > +-- luacheck: globals lua_global_f > +lua_global_f() > +collectgarbage() > +res, _ = misc.sysprof.stop() > +test:ok(res) Ditto. > + > +jit.on() > +os.exit(test:check() and 0 or 1) > -- > 2.36.1 > -- Best regards, Sergey Kaplun
next prev parent reply other threads:[~2022-06-16 6:58 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-12 18:52 Maxim Kokryashkin via Tarantool-patches 2022-06-16 6:56 ` Sergey Kaplun via Tarantool-patches [this message] 2022-07-04 15:27 ` Maxim Kokryashkin via Tarantool-patches 2022-07-15 13:36 ` Igor Munkin via Tarantool-patches 2022-11-11 8:54 ` Igor Munkin via Tarantool-patches
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=YqrUDsqZ0D/5w4d7@root \ --to=tarantool-patches@dev.tarantool.org \ --cc=max.kokryashkin@gmail.com \ --cc=skaplun@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH luajit] sysprof: disable proto and trace dumps in default' \ /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