From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp48.i.mail.ru (smtp48.i.mail.ru [94.100.177.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 4D6F5469719 for ; Sun, 20 Sep 2020 20:13:24 +0300 (MSK) From: Sergey Kaplun Date: Sun, 20 Sep 2020 20:12:47 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v3 0/2] Implement LuaJIT platform metrics List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Munkin , Sergey Ostanevich Cc: tarantool-patches@dev.tarantool.org The series consists of 2 patches. The first one adds corresponding counters to LuaJIT internal structures. The second provides C and Lua API using this counters to collect metrics. Branch: https://github.com/tarantool/luajit/tree/skaplun/gh-5187-luajit-metrics Issue: https://github.com/tarantool/tarantool/issues/5187 Changes in v2: - Fixed naming and comments - Fixed padding in struct GCState - Dropped unnecessary initialisations inside lua_newstate() - Avoided flushing any of metrics after each call of luaM_metrics() Changes in v3: - Cleaned up mess in Makefile.dep - Fixed naming and comments - Fixed padding in struct GCState for 64-bit architectures - Fixed counting amount of JIT traces - Fixed objects counting at trace recording - Added counting of colors - Added C and Lua tests Sergey Kaplun (2): core: introduce various platform metrics misc: add C and Lua API for platform metrics Makefile | 2 +- src/Makefile | 5 +- src/Makefile.dep | 14 +- src/lib_init.c | 2 + src/lib_misc.c | 76 +++ src/lj_asm.c | 2 + src/lj_asm_arm.h | 19 + src/lj_asm_arm64.h | 19 + src/lj_asm_mips.h | 10 + src/lj_asm_ppc.h | 9 + src/lj_asm_x86.h | 10 + src/lj_cdata.c | 9 + src/lj_cdata.h | 2 + src/lj_gc.c | 99 +++- src/lj_gc.h | 33 +- src/lj_jit.h | 3 + src/lj_mapi.c | 65 +++ src/lj_obj.h | 31 +- src/lj_snap.c | 1 + src/lj_state.c | 7 +- src/lj_str.c | 5 + src/lj_tab.c | 2 + src/lj_trace.c | 6 +- src/lj_udata.c | 2 + src/ljamalg.c | 2 + src/lmisclib.h | 71 +++ src/luaconf.h | 1 + src/vm_arm.dasc | 6 + src/vm_arm64.dasc | 6 + src/vm_mips.dasc | 6 + src/vm_mips64.dasc | 6 + src/vm_ppc.dasc | 6 + src/vm_x64.dasc | 2 + src/vm_x86.dasc | 2 + test/clib-misclib-getmetrics.test.lua | 188 +++++++ test/clib-misclib-getmetrics/CMakeLists.txt | 1 + test/clib-misclib-getmetrics/testgetmetrics.c | 287 +++++++++++ test/lib-misc-getmetrics.test.lua | 459 ++++++++++++++++++ 38 files changed, 1433 insertions(+), 43 deletions(-) create mode 100644 src/lib_misc.c create mode 100644 src/lj_mapi.c create mode 100644 src/lmisclib.h create mode 100755 test/clib-misclib-getmetrics.test.lua create mode 100644 test/clib-misclib-getmetrics/CMakeLists.txt create mode 100644 test/clib-misclib-getmetrics/testgetmetrics.c create mode 100755 test/lib-misc-getmetrics.test.lua -- 2.28.0