From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 088496ECE8; Wed, 13 Apr 2022 23:36:18 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 088496ECE8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1649882179; bh=Et+McrmI9/DfIqXLYs9yAmfwfrMsa0f9sKr7b/rBppc=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Xa4Y02ycDKELKhFt45PySxfbCc8145VhO9Io/BeSQn1syRRNFIvRJvwr9x4D0BjNa O/or1D6UGt5bgnWj8LkRH/7A8rvzH+QnAMiqdWnu3jrJ2ILEzfPvInNUtCO7OaAyhc raFoFqa5N4qpDLkYz5KuG7vJCuC5c0qbvNS8/nkg= Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 9B8F56ECC0 for ; Wed, 13 Apr 2022 23:36:17 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 9B8F56ECC0 Received: by mail-lf1-f53.google.com with SMTP id u19so5640577lff.4 for ; Wed, 13 Apr 2022 13:36:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=fcVCfb8DLK6ki0ZqZYi+J5gMWPeE2lneOw7ukNDGmKw=; b=S98RoKDATBFfyH/nFlWRa7d0dCkG/5LqJRsvO9kpldQZ950RI6DCy9A0jTS6GzQA6T 4c4+bq6zUEKZabdl0cmGvmz3PeirBGW+BS9Dqldam6dfmsK52E9nv7UnWmDcCwXr1Sul AFspgHZlar/u8PYrKnO2s2YO/ccCyfoPwl3y7XhlsuOYFXapt5QjHpf1hVRDHEd2ZvKp Cvy7jN4HRgcxmcgvs5zYtJMnEWGS42+qg0F/V4Elcba+7/bS0YlVDNRi7kTuEKXXjG8+ x8utWwqBf/9aake+ai9h5dvi2FSgGpGqXzaEI/Apmdf6JtBT9zPIHLeLvDsw21ey2BUt W85A== X-Gm-Message-State: AOAM5326yyIJ5q147SBKwbZn16A8J4ulFvhe8WwcGZOSz2SraEqAKT1V mAK9zjVMdxLjWk9fsw14/0OjuzKmVETmQQ== X-Google-Smtp-Source: ABdhPJzlThLYVPyBLGUtz6lrX8YFDJmqGye+Lk9JDGhxduHepCis+Em8gNb8yM8tiluDYPDHWJjmZg== X-Received: by 2002:a05:6512:3f86:b0:44a:f5bf:ec9a with SMTP id x6-20020a0565123f8600b0044af5bfec9amr30173440lfa.490.1649882176574; Wed, 13 Apr 2022 13:36:16 -0700 (PDT) Received: from localhost.localdomain ([93.175.11.199]) by smtp.gmail.com with ESMTPSA id e15-20020a19500f000000b0046bb76678bcsm2389lfb.131.2022.04.13.13.36.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Apr 2022 13:36:16 -0700 (PDT) X-Google-Original-From: Maxim Kokryashkin To: tarantool-patches@dev.tarantool.org, imun@tarantool.org, skaplun@tarantool.org Date: Wed, 13 Apr 2022 23:36:06 +0300 Message-Id: X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH luajit v4 0/7] misc: introduce sysprof X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Maxim Kokryashkin via Tarantool-patches Reply-To: Maxim Kokryashkin Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Changes in v4: - Fixed comments as per review by Sergey Maxim Kokryashkin (4): memprof: move symtab to a separate module memprof: add profile common section sysprof: introduce Lua API tools: introduce parsers for sysprof Mikhail Shishatskiy (3): vm: save topframe info into global_State core: separate the profiling timer from lj_profile core: introduce lua and platform profiler .gitignore | 1 + CMakeLists.txt | 6 + src/CMakeLists.txt | 3 + src/Makefile.dep.original | 51 +- src/Makefile.original | 6 +- src/lib_misc.c | 263 ++++++++- src/lj_arch.h | 11 + src/lj_errmsg.h | 2 +- src/lj_mapi.c | 26 + src/lj_memprof.c | 82 +-- src/lj_memprof.h | 49 +- src/lj_obj.h | 1 + src/lj_profile.c | 176 +----- src/lj_profile_timer.c | 133 +++++ src/lj_profile_timer.h | 83 +++ src/lj_state.c | 7 + src/lj_symtab.c | 84 +++ src/lj_symtab.h | 65 +++ src/lj_sysprof.c | 530 ++++++++++++++++++ src/lj_sysprof.h | 93 +++ src/ljamalg.c | 2 + src/lmisclib.h | 95 ++++ src/vm_x64.dasc | 38 +- src/vm_x86.dasc | 41 +- test/tarantool-tests/CMakeLists.txt | 1 + .../misclib-sysprof-capi.test.lua | 52 ++ .../misclib-sysprof-capi/CMakeLists.txt | 1 + .../misclib-sysprof-capi/testsysprof.c | 272 +++++++++ .../misclib-sysprof-lapi.test.lua | 120 ++++ tools/CMakeLists.txt | 83 +++ tools/luajit-parse-sysprof.in | 6 + tools/sysprof.lua | 119 ++++ tools/sysprof/collapse.lua | 113 ++++ tools/sysprof/parse.lua | 188 +++++++ tools/utils/symtab.lua | 2 +- 35 files changed, 2446 insertions(+), 359 deletions(-) create mode 100644 src/lj_profile_timer.c create mode 100644 src/lj_profile_timer.h create mode 100644 src/lj_symtab.c create mode 100644 src/lj_symtab.h create mode 100644 src/lj_sysprof.c create mode 100644 src/lj_sysprof.h create mode 100644 test/tarantool-tests/misclib-sysprof-capi.test.lua create mode 100644 test/tarantool-tests/misclib-sysprof-capi/CMakeLists.txt create mode 100644 test/tarantool-tests/misclib-sysprof-capi/testsysprof.c create mode 100644 test/tarantool-tests/misclib-sysprof-lapi.test.lua create mode 100644 tools/luajit-parse-sysprof.in create mode 100644 tools/sysprof.lua create mode 100755 tools/sysprof/collapse.lua create mode 100755 tools/sysprof/parse.lua -- 2.35.1