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 205161692D93; Fri, 26 Dec 2025 11:43:44 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 205161692D93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1766738624; bh=JGahru15oHfFazWR1krkLXt++OfPvC7+0mh+3mY8k/M=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=QcqmJsfpKdJalUtXi7T3+9pwm7TnsZR2c+GbS++C4e4x9x9Kup8is1OplI1YVG7bL 9SK1HTXIlJvoJOsBALodrGNImDCclxS8IDE07Pbo0Q21T4LX6f6d5ntiqh9jyqiwZ2 e6QVFiyI5p3zWYToPvx75fwSLWrf+QIu4lRdxPz0= Received: from send81.i.mail.ru (send81.i.mail.ru [89.221.237.176]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 AA78D1692D91 for ; Fri, 26 Dec 2025 11:43:42 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org AA78D1692D91 Received: by exim-smtp-7b4fb89df9-64pcp with esmtpa (envelope-from ) id 1vZ3QD-00000000EgN-38JH; Fri, 26 Dec 2025 11:43:42 +0300 Date: Fri, 26 Dec 2025 11:43:39 +0300 To: Sergey Bronnikov Cc: tarantool-patches@dev.tarantool.org Message-ID: References: <74c74521bf5b3d3c629b5e9337c3436d3145f1a4.1761301736.git.skaplun@tarantool.org> <98db63bf-72e6-490b-833f-caa599e33657@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <98db63bf-72e6-490b-833f-caa599e33657@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD979975AF0D777FEBD136B1DE29D0A141801E96C80D96E6DBF182A05F538085040D421D2213F6F83EE3DE06ABAFEAF670523E064676D57656B95925BE4019C9994F4C996BC25162494 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE71EAE3A63419E5AEDEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566657B88B02DF8C86933F6005ECA4EA313DEC13F3F7D0A55CC854E231F91219F9A389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C07E7E81EEA8A9722B8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6957A4DEDD2346B42CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE79E9721B410A3B6ED731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A53050E274C1891BFF5002B1117B3ED6966B235AD2C180A3C1C638DF663A625AFA823CB91A9FED034534781492E4B8EEADA91A6E18C88C5E2F X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE1918E10F71CB4DF9F96AB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D659159F1E8A3D99C411B0FF6AA4F6EB08D49DA8F391C41257200C897DED05D679F97E9255D5A4CDE5B4B8341EE9D5BE9A0A25B9960AB182AD289F3449ACD5D151EB040A74CD9E5D27D78CD93680B12512CF4C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVdtTL5f5BIXbhRyf1Uu0lAM= X-Mailru-Sender: 689FA8AB762F7393DDD5FD59B456EAD2AE3B314BB477289B1C2068F11DD5BAD64A7D2B69A21621DCE49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v1 luajit 41/41] ci: introduce the performance workflow 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: Sergey Kaplun via Tarantool-patches Reply-To: Sergey Kaplun Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Sergey! Thanks for the review. Please, consider my answers below. On 18.11.25, Sergey Bronnikov wrote: > Hi, Sergey, > > thanks for the patch! See my comments. > > Sergey > > On 10/24/25 14:00, Sergey Kaplun wrote: > > This patch adds the workflow to run benchmarks from various suites, > > aggregate their results, and send statistics to the InfluxDB to be > > processed later. > > > > The workflow contains a matrix to measure GC64 and non-GC64 modes with > > enabled/disabled JIT for x64 architecture. > > --- > > + run: | > > + apt -y update > > + apt install -y luarocks curl > > + shell: bash > > + - name: Install Lua modules > > + run: luarocks install lua-cjson > > + shell: bash > > + - name: Run script to setup Linux environment > > + run: sh ./perf/helpers/setup_env.sh > > + shell: bash > bash or shell is used in the last step? (shebang in setup_env.sh is > /bin/sh) It uses the `sh` command anyway, but I prefer to leave this line as is for the consistency. > > diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml > > new file mode 100644 > > index 00000000..bfb6be97 > > --- /dev/null > > +++ b/.github/workflows/performance.yml > > +concurrency: > > + # An update of a developer branch cancels the previously > > + # scheduled workflow run for this branch. However, the default > > + # branch, and long-term branch (tarantool/release/2.11, > > + # tarantool/release/2.10, etc) workflow runs are never canceled. > > + # > it is not relevant, right? Why not? Unless we send the results to the InfluxDB, the job isn't finished and may be aborted that way for the default branch if we need to push dummy commits. > > + # We use a trick here: define the concurrency group as 'workflow > > + # run ID' + # 'workflow run attempt' because it is a unique > > + # combination for any run. So it effectively discards grouping. > > + # > > + # XXX: we cannot use `github.sha` as a unique identifier because > > + # pushing a tag may cancel a run that works on a branch push > > + # event. > > + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') > > + && format('{0}-{1}', github.run_id, github.run_attempt) > > + || format('{0}-{1}', github.workflow, github.ref) }} > > + cancel-in-progress: true > > + > > + - name: configure > > + # The taskset alone will pin all the process threads > > + # into a single (random) isolated CPU, see > > + #https://bugzilla.kernel.org/show_bug.cgi?id=116701. > > + # The workaround is using realtime scheduler for the > > + # isolated task using chrt, e. g.: > > + # sudo taskset 0xef chrt 50. > > + # But this makes the process use non-standard, real-time > > + # round-robin scheduling mechanism. > > + run: > > > + cmake -S . -B ${{ env.BUILDDIR }} > > + -DCMAKE_BUILD_TYPE=RelWithDebInfo > > RelWithDebInfo is -O2 (moderate optimization), Release is -O3 (high > optimization). > > Do we really need  RelWithDebInfo? I think it deserves a comment. It is the default build for the Tarantool as well. We have no Release builds, IINM. Also, mostly we executed the hot code either in the VM or on trace, where these flags are irrelevant (excluding table lookups). > > > + -DLUAJIT_ENABLE_PERF=ON > > + -DLUAJIT_BENCH_INIT="taskset 0xfe chrt 50" > > + -DLUAJIT_DISABLE_JIT=${{ matrix.JOFF }} > > + -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }} > > + - name: perf > this name is visible in Web UI. I would make it more descriptive (execute > performance benchmarks?) I prefer to leave it as is to be consistent with naming in tests. All description is given in the workflow name anyway. Also, fixed the workflow name: =================================================================== diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index bfb6be97..fe22eb4b 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -56,7 +56,7 @@ jobs: name: > LuaJIT GC64:${{ matrix.GC64 }} - JOFF:${{ matrix.GC64 }} + JOFF:${{ matrix.JOFF }} steps: - uses: actions/checkout@v4 with: =================================================================== -- Best regards, Sergey Kaplun