Skip to content

ci: install bpftool from released package if available#2749

Merged
poiana merged 1 commit intomasterfrom
ekoops/bpftool-from-release
Dec 12, 2025
Merged

ci: install bpftool from released package if available#2749
poiana merged 1 commit intomasterfrom
ekoops/bpftool-from-release

Conversation

@ekoops
Copy link
Copy Markdown
Contributor

@ekoops ekoops commented Dec 11, 2025

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind test

/kind feature

/kind sync

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area API-version

/area build

/area CI

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-savefile

/area libscap

/area libpman

/area libsinsp

/area tests

/area proposals

Does this PR require a change in the driver versions?

/version driver-API-version-major

/version driver-API-version-minor

/version driver-API-version-patch

/version driver-SCHEMA-version-major

/version driver-SCHEMA-version-minor

/version driver-SCHEMA-version-patch

What this PR does / why we need it:

This PR installs bpftool from released package if available. Currently, this is the case for amd64 and arm64, while it is not for s390x and ppc64le. In these latter cases, it builds it from sources and then installs it. Notice that we keep using bpftool provided by the package manager on test-drivers-ppc64le for the moment, until the self-hosted runner is replaced.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

/milestone 0.23.0

Does this PR introduce a user-facing change?:

NONE

@poiana
Copy link
Copy Markdown
Contributor

poiana commented Dec 11, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ekoops

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions
Copy link
Copy Markdown

github-actions bot commented Dec 11, 2025

Perf diff from master - unit tests

     4.15%    +12.01%  [.] std::__shared_ptr<sinsp_threadinfo, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__weak_ptr<sinsp_threadinfo, (__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t)
     3.32%    +10.80%  [.] std::__shared_count<(__gnu_cxx::_Lock_policy)2>::_M_get_use_count() const
     3.25%     +9.18%  [.] std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_lock_nothrow()
     3.88%     +8.53%  [.] sinsp_threadinfo::get_main_thread()
     3.11%     +7.13%  [.] sinsp_threadinfo::update_main_fdtable()
     2.92%     +6.85%  [.] sinsp_threadinfo::get_fd_table()
     5.57%     +6.52%  [.] std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
     1.94%     +5.90%  [.] std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__weak_count<(__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t)
    10.61%     -5.37%  [.] sinsp::next(sinsp_evt**)
     1.70%     +3.51%  [.] thread_group_info::get_first_thread() const

Heap diff from master - unit tests

peak heap memory consumption: 27.68K
peak RSS (including heaptrack overhead): 0B
total memory leaked: 0B

Heap diff from master - scap file

peak heap memory consumption: 0B
peak RSS (including heaptrack overhead): 0B
total memory leaked: 0B

Benchmarks diff from master

Comparing gbench_data.json to /root/actions-runner/_work/libs/libs/build/gbench_data.json
Benchmark                                                         Time             CPU      Time Old      Time New       CPU Old       CPU New
----------------------------------------------------------------------------------------------------------------------------------------------
BM_sinsp_split_mean                                            -0.0363         -0.0364           248           239           247           238
BM_sinsp_split_median                                          -0.0361         -0.0362           248           239           247           238
BM_sinsp_split_stddev                                          -0.2858         -0.2780             1             1             1             1
BM_sinsp_split_cv                                              -0.2589         -0.2508             0             0             0             0
BM_sinsp_concatenate_paths_relative_path_mean                  +0.0607         +0.0607            70            74            70            74
BM_sinsp_concatenate_paths_relative_path_median                +0.0656         +0.0658            70            74            69            74
BM_sinsp_concatenate_paths_relative_path_stddev                +0.8788         +0.8722             1             2             1             2
BM_sinsp_concatenate_paths_relative_path_cv                    +0.7713         +0.7651             0             0             0             0
BM_sinsp_concatenate_paths_empty_path_mean                     -0.0703         -0.0705            44            41            44            41
BM_sinsp_concatenate_paths_empty_path_median                   -0.0703         -0.0706            44            40            44            40
BM_sinsp_concatenate_paths_empty_path_stddev                   +0.2680         +0.2679             1             1             1             1
BM_sinsp_concatenate_paths_empty_path_cv                       +0.3639         +0.3640             0             0             0             0
BM_sinsp_concatenate_paths_absolute_path_mean                  +0.0277         +0.0277            71            73            71            73
BM_sinsp_concatenate_paths_absolute_path_median                +0.0311         +0.0310            71            74            71            74
BM_sinsp_concatenate_paths_absolute_path_stddev                +2.4664         +2.5678             0             0             0             0
BM_sinsp_concatenate_paths_absolute_path_cv                    +2.3730         +2.4718             0             0             0             0

@ekoops ekoops force-pushed the ekoops/bpftool-from-release branch 2 times, most recently from b04e3ab to bd42a4a Compare December 11, 2025 17:18
@codecov
Copy link
Copy Markdown

codecov bot commented Dec 11, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.56%. Comparing base (35f5e23) to head (3f41644).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2749   +/-   ##
=======================================
  Coverage   74.56%   74.56%           
=======================================
  Files         292      292           
  Lines       29998    29998           
  Branches     4651     4651           
=======================================
  Hits        22367    22367           
  Misses       7631     7631           
Flag Coverage Δ
libsinsp 74.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ekoops ekoops force-pushed the ekoops/bpftool-from-release branch 3 times, most recently from 6ef2372 to 2ccf4ed Compare December 12, 2025 09:14
Install `bpftool` from released package if available. Currently, this
is the case for `amd64` and `arm64`, while it is not for `s390x` and
`ppc64le`. In these latter cases, install build it from sources and
install it. Keep using `bpftool` provided by the package manager on
`test-drivers-ppc64le` for the moment, until the self-hosted runner is
replaced.

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
@ekoops ekoops force-pushed the ekoops/bpftool-from-release branch from 2ccf4ed to 3f41644 Compare December 12, 2025 09:19
@ekoops ekoops changed the title ci: install bpftool from released package if available ci: install bpftool from released package if available Dec 12, 2025
Copy link
Copy Markdown
Contributor

@irozzo-1A irozzo-1A left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a nit, but it's no blocker for me

Comment on lines +9 to +11
arch:
description: "Machine architecture (e.g.: 'amd64')"
required: true # To make it difficult for a user to rely on the wrong default.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: you could rely on the runner architecture instead of passing it as input https://docs.github.com/en/actions/reference/workflows-and-actions/variables

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider the fact that github doesn't provide support for s390x and ppc64le (indeed we are using dedicated runners and/or externally provided ones). In those cases, we couldn't rely on runner architecture... I thought to use uname -m, but then I have to introduce a mapping logic (e.g.: x86_64 -> amd64)

@github-project-automation github-project-automation bot moved this from Todo to In progress in Falco Roadmap Dec 12, 2025
@poiana poiana merged commit d694e25 into master Dec 12, 2025
47 checks passed
@github-project-automation github-project-automation bot moved this from In progress to Done in Falco Roadmap Dec 12, 2025
@poiana poiana deleted the ekoops/bpftool-from-release branch December 12, 2025 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants