Hi, Sergey, LGTM Sergey On 1/14/26 13:19, Sergey Kaplun wrote: > Hi, Sergey! > Thanks for the review! > Please consider my answers below. > > Fixed your comment and force-pushed the branch. > > On 13.01.26, Sergey Bronnikov wrote: >> Hi, Sergey! >> >> thanks for the patch! Please see my comments. >> >> Sergey >> >> On 12/26/25 12:18, 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. >>> --- >>> .github/actions/setup-performance/README.md | 10 ++ >>> .github/actions/setup-performance/action.yml | 18 +++ >>> .github/workflows/performance.yml | 110 +++++++++++++++++++ >>> 3 files changed, 138 insertions(+) >>> create mode 100644 .github/actions/setup-performance/README.md >>> create mode 100644 .github/actions/setup-performance/action.yml >>> create mode 100644 .github/workflows/performance.yml >>> >>> diff --git a/.github/actions/setup-performance/README.md b/.github/actions/setup-performance/README.md >>> new file mode 100644 >>> index 00000000..4c4bbdab >>> --- /dev/null >>> +++ b/.github/actions/setup-performance/README.md > > >>> diff --git a/.github/actions/setup-performance/action.yml b/.github/actions/setup-performance/action.yml >>> new file mode 100644 >>> index 00000000..24d07440 >>> --- /dev/null >>> +++ b/.github/actions/setup-performance/action.yml >>> @@ -0,0 +1,18 @@ >>> +name: Setup performance >>> +description: The Linux machine setup for running LuaJIT benchmarks >>> +runs: >>> + using: composite >>> + steps: >>> + - name: Setup CI environment (Linux) >>> + uses: ./.github/actions/setup-linux >>> + - name: Install dependencies for the LuaJIT benchmarks >>> + run: | >>> + apt -y update >>> + apt install -y luarocks curl >> I propose to add util-linux package that provides taskset utility. > Sure! > > Added: > =================================================================== > diff --git a/.github/actions/setup-performance/action.yml b/.github/actions/setup-performance/action.yml > index 24d07440..4e0e1929 100644 > --- a/.github/actions/setup-performance/action.yml > +++ b/.github/actions/setup-performance/action.yml > @@ -8,7 +8,7 @@ runs: > - name: Install dependencies for the LuaJIT benchmarks > run: | > apt -y update > - apt install -y luarocks curl > + apt install -y curl luarocks util-linux > shell: bash > - name: Install Lua modules > run: luarocks install lua-cjson > =================================================================== > > >>> + 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 >>> diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml >>> new file mode 100644 >>> index 00000000..fe22eb4b >>> --- /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. >>> + # >> do we need this text? > I suppose yes, it is left intact with the strange hacks below. > It is a generic part for all workflows. > >>> + # 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 >>> + >>> +jobs: >>> + performance-luajit: >>> + # The 'performance' label _must_ be set only for the single >>> + # runner to guarantee that results are not dependent on the >>> + # machine. >> we don't use PR's in LuaJIT > It is about runner label, not PR label. > >>> + runs-on: >>> + - self-hosted >>> + - Linux >>> + - x86_64 >>> + - 'performance' > >