[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