[Tarantool-patches] [PATCH luajit v3 1/2] core: introduce memory profiler
Igor Munkin
imun at tarantool.org
Mon Dec 28 06:59:27 MSK 2020
Sergey,
Thanks for the fixes! LGTM.
On 28.12.20, Sergey Kaplun wrote:
> This patch introduces memory profiler for Lua machine.
>
> To determine currently allocating coroutine (that may not be equal to
> currently executed one) a new field mem_L is added to the
> global_State structure. This field is set on each allocation event and
> stores the coroutine address that is used for allocation.
>
> First of all profiler dumps the definitions of all loaded Lua functions
> (symtab) via the write buffer introduced in one of the previous patches.
>
> Profiler replaces the old allocation function with the instrumented one
> after symtab is dumped. This new function reports all allocations,
> reallocations or deallocations events via the write buffer during
> profiling. Subsequent content depends on the function's type (LFUNC,
> FFUNC or CFUNC).
>
> When profiling is over, a special epilogue event header is written and
> the old allocation function is restored back.
>
> This change also makes debug_frameline function LuaJIT-wide visible to
> be used in the memory profiler.
>
> For more information, see <lj_memprof.h>.
>
> Part of tarantool/tarantool#5442
> ---
>
> Changes in v3:
> * Fixed invalid pointer usage at on_stop cb.
> * Dropped thread safe logic.
> * Dropped unused functions.
> * Added assertion to memprof_write_lfunc.
> * Codestyle fixes.
>
> src/Makefile | 5 +-
> src/Makefile.dep | 30 +++--
> src/lj_arch.h | 15 +++
> src/lj_debug.c | 8 +-
> src/lj_debug.h | 3 +
> src/lj_gc.c | 7 +-
> src/lj_gc.h | 1 +
> src/lj_memprof.c | 344 +++++++++++++++++++++++++++++++++++++++++++++++
> src/lj_memprof.h | 159 ++++++++++++++++++++++
> src/lj_obj.h | 1 +
> src/lj_state.c | 7 +
> src/ljamalg.c | 1 +
> 12 files changed, 561 insertions(+), 20 deletions(-)
> create mode 100644 src/lj_memprof.c
> create mode 100644 src/lj_memprof.h
>
<snipped>
> --
> 2.28.0
>
--
Best regards,
IM
More information about the Tarantool-patches
mailing list