Tarantool discussions archive
 help / color / mirror / Atom feed
From: Sergey Kaplun <skaplun@tarantool.org>
To: Igor Munkin <imun@tarantool.org>
Cc: tarantool-discussions@dev.tarantool.org
Subject: Re: [Tarantool-discussions] [RFC] rfc: describe a LuaJIT memory profiler
Date: Fri, 11 Dec 2020 13:05:08 +0300	[thread overview]
Message-ID: <20201211100508.GA29644@root> (raw)
In-Reply-To: <20201211085148.GM5396@tarantool.org>

Igor,

Thanks for your feedback, I'll send RFC v2 with the patch for the
profiler in LuaJIT for more detailed review.

On 11.12.20, Igor Munkin wrote:
> Sergey,
> 
> Thanks for the clarification! I read the doc once more and answered the
> remaining questions below. I guess we have resolved the major points so
> I wait for the second version of the RFC.
> 
> On 16.11.20, Sergey Kaplun wrote:

<snipped>

> > > > +
> > > > +Extended functions to control profiler are added to <lmisclib.h>.
> > > > +Profiler is configured by this options structure:
> > > > +
> > > > +```c
> > > > +/* Profiler options. */
> > > > +struct luam_Prof_options {
> > > > +  /* Options for the profile writer and final callback. */
> > > > +  void *arg;
> > > > +  /*
> > > > +  ** Writer function for profile events.
> > > > +  ** Should return amount of written bytes on success or zero in case of error.
> > > > +  */
> > > > +  size_t (*writer)(const void *data, size_t len, void *arg);
> > > > +  /*
> > > > +  ** Callback on profiler stopping. Required for correctly cleaning
> > > > +  ** at vm shoutdown when profiler still running.
> > > > +  ** Returns zero on success.
> > > > +  */
> > > > +  int (*on_stop)(void *arg);
> > > > +};
> > > > +```
> > > 
> > > Well, maybe it's better to introduce a special interface to fill this
> > > struct? Something similar to luaE_coveragestart_cb[1]. As a result the
> > > structure is encapsulated in LuaJIT, that looks more convenient for the
> > > further maintenance.
> > 
> > Yes, but on the other side for each profiler we should create N
> > additional interfaces how to start it.
> 
> As well as N additional structs for profiler options. So what?

Why? One structure for *all* profilers. It's the point.

> 

<snipped>

> > > 
> > > What does this "Overrides" attribute mean?
> > 
> > What allocation this reallocation overrides.
> 
> Well, I guess I get it, but doubt that "overrides" fits this definition.
> 

It can be named "overwrites".

> > 
> 
> <snipped>
> 
> > > > +#### Dump of Lua universe
> 
> Let's sort the needy from the greedy right here. While reading the RFC
> once more, I bethought to move this part to a separate document to not
> spoil this one. Thoughts?

Totally agree, insofar as it will be provided in the next version of
the profiler.

> 

<snipped>

> 
> -- 
> Best regards,
> IM

-- 
Best regards,
Sergey Kaplun

      reply	other threads:[~2020-12-11 10:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-27 11:29 Sergey Kaplun
2020-11-03 12:40 ` Igor Munkin
2020-11-16  5:52   ` Sergey Kaplun
2020-12-11  8:51     ` Igor Munkin
2020-12-11 10:05       ` Sergey Kaplun [this message]

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=20201211100508.GA29644@root \
    --to=skaplun@tarantool.org \
    --cc=imun@tarantool.org \
    --cc=tarantool-discussions@dev.tarantool.org \
    --subject='Re: [Tarantool-discussions] [RFC] rfc: describe a LuaJIT memory profiler' \
    /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