[Tarantool-patches] [PATCH v2 luajit 41/41] ci: introduce the performance workflow

Sergey Kaplun skaplun at tarantool.org
Wed Jan 14 13:19:32 MSK 2026


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

<snipped>

> > 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

<snipped>

> > +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'

<snipped>

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list