Skip to content

sync: cherry-pick for release/0.25.x#3001

Merged
poiana merged 4 commits into
falcosecurity:release/0.25.xfrom
ekoops:ekoops/sync-release-0.25.x
May 19, 2026
Merged

sync: cherry-pick for release/0.25.x#3001
poiana merged 4 commits into
falcosecurity:release/0.25.xfrom
ekoops:ekoops/sync-release-0.25.x

Conversation

@ekoops
Copy link
Copy Markdown
Contributor

@ekoops ekoops commented May 19, 2026

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 automation

/area drivers

/area driver-kmod

/area driver-modern-bpf

/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 cherry-picks from master the content of the following merged PRs:

This sync prepares the 10.2.0+driver drivers release

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

/milestone 10.2.0+driver

Does this PR introduce a user-facing change?:

NONE

deepskyblue86 and others added 4 commits May 19, 2026 17:30
Split execve_x and execveat_x into 4-stage tail call chains with
success/failure path separation. Apply __noinline to
auxmap__store_exe_args_failure and precompute args_space to replace
two-variable range tracking with single-variable comparison.

Kernel 7.0 changed BPF verifier state pruning behavior (commits
3cd5c890652b, b2a0aa3a8739, f597664454bd, 179ee84a8911), causing
programs already near the 1M instruction limit to exceed BPF_COMPLEXITY_LIMIT_INSNS.
These changes reduce instruction count and verifier state complexity
to stay within the limit.

Signed-off-by: Angelo Puglisi <angelopuglisi86@gmail.com>
In auxmap__store_exe_args_failure(), when exe_len equals
MAX_PROC_ARG_ENV (both are 4096), args_space is 0 but the loop still
runs once. push__charbuf advances auxmap->payload_pos for the first
arg before the args_len >= args_space check clamps args_len back to
0. Since the rewind block is gated on args_len > 0, payload_pos stays
advanced while the stored param length is 0, desynchronizing all
subsequent params in the event.

Early-return with a zero-length args param when args_space is 0, so
the loop never runs and payload_pos is never advanced without a
matching length.

Signed-off-by: Angelo Puglisi <angelopuglisi86@gmail.com>
Keep argv collection in the entry program so kernel 7 still sees a
smaller verifier unit while older kernels avoid tail-call plus
bpf-to-bpf helper restrictions.

Restore ptid to ppid in the failure path and bump the driver API
version for the extra tail-call stages: libpman now loads three
tail-called programs per execve/execveat instead of two, so the
userspace<->kernel API contract grows.

Signed-off-by: Angelo Puglisi <angelopuglisi86@gmail.com>
The kernel module currently exports euids, egids and loginuids as seen
from the task's user namespace: this is inconsistent with the
(expected) behaviour implemented by the modern eBPF probe, that
exports the ones seen from the init user namespace. Make the kernel
module consistent by fixing its code to export the ones seen from the
init user namespace.

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
@poiana
Copy link
Copy Markdown
Contributor

poiana commented May 19, 2026

@ekoops: The provided milestone is not valid for this repository. Milestones in this repository: [0.26.0, 10.2.0+driver, TBD, next-driver]

Use /milestone clear to clear the milestone.

Details

In response to this:

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 automation

/area drivers

/area driver-kmod

/area driver-modern-bpf

/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 cherry-picks from master the content of the following merged PR:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

/milestone 10.2.0+driver

Does this PR introduce a user-facing change?:

NONE

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@poiana poiana added release-note-none kind/sync PRs syncing branch with changes coming from another branch labels May 19, 2026
@poiana poiana added dco-signoff: yes area/drivers Anything that cannot be associated to any other `area/driver-` label area/driver-kmod area/driver-modern-bpf area/libpman size/L labels May 19, 2026
@poiana poiana requested review from hbrueckner and terror96 May 19, 2026 15:36
@ekoops
Copy link
Copy Markdown
Contributor Author

ekoops commented May 19, 2026

/milestone 10.2.0+driver

@github-project-automation github-project-automation Bot moved this from Todo to In progress in Falco Roadmap May 19, 2026
@irozzo-1A irozzo-1A self-requested a review May 19, 2026 15:45
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.

/lgtm

@poiana
Copy link
Copy Markdown
Contributor

poiana commented May 19, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ekoops, gnosek, irozzo-1A, leogr

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:
  • OWNERS [ekoops,gnosek,irozzo-1A,leogr]

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

@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (release/0.25.x@6c7c6c7). Learn more about missing BASE report.

Additional details and impacted files
@@                Coverage Diff                @@
##             release/0.25.x    #3001   +/-   ##
=================================================
  Coverage                  ?   75.73%           
=================================================
  Files                     ?      299           
  Lines                     ?    33164           
  Branches                  ?     5166           
=================================================
  Hits                      ?    25116           
  Misses                    ?     8048           
  Partials                  ?        0           
Flag Coverage Δ
libsinsp 75.73% <ø> (?)

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.

@poiana poiana merged commit 296aeda into falcosecurity:release/0.25.x May 19, 2026
58 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in Falco Roadmap May 19, 2026
@ekoops ekoops deleted the ekoops/sync-release-0.25.x branch May 19, 2026 15:54
@github-actions
Copy link
Copy Markdown

Perf diff from master - unit tests

    17.64%     -6.43%  [.] sinsp_threadinfo::get_main_thread()
     9.69%     -5.97%  [.] sinsp_thread_manager::create_thread_dependencies(std::shared_ptr<sinsp_threadinfo> const&)
     3.27%     +4.33%  [.] sinsp_threadinfo::get_fd_table()
    16.86%     -3.34%  [.] 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)
     6.43%     +2.16%  [.] std::__shared_count<(__gnu_cxx::_Lock_policy)2>::_M_get_use_count() const
    16.49%     +1.75%  [.] std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_lock_nothrow()
    10.86%     -1.17%  [.] std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
     6.97%     -0.28%  [.] std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__weak_count<(__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t)
     0.15%     -0.12%  [.] std::basic_string_view<char, std::char_traits<char> >::compare(unsigned long, unsigned long, std::basic_string_view<char, std::char_traits<char> >) const
     0.16%     -0.12%  [.] sinsp::next(sinsp_evt**)

Heap diff from master - unit tests

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

Heap diff from master - scap file

peak heap memory consumption: -7.54K
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.0754         -0.0752           271           250           271           250
BM_sinsp_split_median                                                                -0.0561         -0.0555           270           255           270           255
BM_sinsp_split_stddev                                                                +1.5398         +1.5501             3             8             3             8
BM_sinsp_split_cv                                                                    +1.7469         +1.7575             0             0             0             0
BM_sinsp_concatenate_paths_relative_path_mean                                        +0.0908         +0.0910            79            86            79            86
BM_sinsp_concatenate_paths_relative_path_median                                      +0.0920         +0.0922            79            86            79            86
BM_sinsp_concatenate_paths_relative_path_stddev                                      +0.1315         +0.1602             0             0             0             0
BM_sinsp_concatenate_paths_relative_path_cv                                          +0.0373         +0.0634             0             0             0             0
BM_sinsp_concatenate_paths_empty_path_mean                                           -0.0198         -0.0198            45            44            45            44
BM_sinsp_concatenate_paths_empty_path_median                                         -0.0198         -0.0198            45            44            45            44
BM_sinsp_concatenate_paths_empty_path_stddev                                         +0.9310         +0.8454             0             0             0             0
BM_sinsp_concatenate_paths_empty_path_cv                                             +0.9699         +0.8826             0             0             0             0
BM_sinsp_concatenate_paths_absolute_path_mean                                        +0.0771         +0.0772            78            84            78            84
BM_sinsp_concatenate_paths_absolute_path_median                                      +0.0759         +0.0763            78            83            77            83
BM_sinsp_concatenate_paths_absolute_path_stddev                                      +0.2820         +0.2840             1             1             1             1
BM_sinsp_concatenate_paths_absolute_path_cv                                          +0.1903         +0.1920             0             0             0             0
BM_sinsp_sanitize_string_fast_path_ascii_short_mean                                  +0.0034         +0.0034            19            19            19            19
BM_sinsp_sanitize_string_fast_path_ascii_short_median                                +0.0012         +0.0012            19            19            19            19
BM_sinsp_sanitize_string_fast_path_ascii_short_stddev                                -0.9557         -0.9600             0             0             0             0
BM_sinsp_sanitize_string_fast_path_ascii_short_cv                                    -0.9559         -0.9602             0             0             0             0
BM_sinsp_sanitize_string_fast_path_ascii_long_mean                                   +0.0031         +0.0033           165           165           165           165
BM_sinsp_sanitize_string_fast_path_ascii_long_median                                 +0.0030         +0.0033           165           165           165           165
BM_sinsp_sanitize_string_fast_path_ascii_long_stddev                                 -0.3372         -0.1102             0             0             0             0
BM_sinsp_sanitize_string_fast_path_ascii_long_cv                                     -0.3392         -0.1131             0             0             0             0
BM_sinsp_sanitize_string_fast_path_multibyte_short_mean                              +0.0128         +0.0129            14            14            14            14
BM_sinsp_sanitize_string_fast_path_multibyte_short_median                            +0.0005         +0.0005            14            14            14            14
BM_sinsp_sanitize_string_fast_path_multibyte_short_stddev                            -0.9823         -0.9850             0             0             0             0
BM_sinsp_sanitize_string_fast_path_multibyte_short_cv                                -0.9825         -0.9852             0             0             0             0
BM_sinsp_sanitize_string_fast_path_multibyte_long_mean                               -0.0176         -0.0176          4954          4867          4952          4865
BM_sinsp_sanitize_string_fast_path_multibyte_long_median                             -0.0139         -0.0139          4935          4866          4933          4865
BM_sinsp_sanitize_string_fast_path_multibyte_long_stddev                             -0.9648         -0.9673            36             1            36             1
BM_sinsp_sanitize_string_fast_path_multibyte_long_cv                                 -0.9642         -0.9667             0             0             0             0
BM_sinsp_sanitize_string_fast_path_mixed_long_mean                                   -0.1369         -0.1370          2341          2021          2340          2020
BM_sinsp_sanitize_string_fast_path_mixed_long_median                                 -0.1352         -0.1351          2335          2019          2334          2018
BM_sinsp_sanitize_string_fast_path_mixed_long_stddev                                 -0.8058         -0.8051            18             4            18             4
BM_sinsp_sanitize_string_fast_path_mixed_long_cv                                     -0.7749         -0.7742             0             0             0             0
BM_sinsp_sanitize_string_slow_path_c1_controls_long_alloc_mean                       +0.0351         +0.0351          5941          6149          5939          6147
BM_sinsp_sanitize_string_slow_path_c1_controls_long_alloc_median                     +0.0020         +0.0020          6136          6149          6135          6147
BM_sinsp_sanitize_string_slow_path_c1_controls_long_alloc_stddev                     -0.9927         -0.9938           285             2           285             2
BM_sinsp_sanitize_string_slow_path_c1_controls_long_alloc_cv                         -0.9930         -0.9940             0             0             0             0
BM_sinsp_sanitize_string_slow_path_c1_controls_long_noalloc_mean                     +0.0003         +0.0004          6019          6021          6017          6019
BM_sinsp_sanitize_string_slow_path_c1_controls_long_noalloc_median                   +0.0003         +0.0003          6019          6021          6017          6018
BM_sinsp_sanitize_string_slow_path_c1_controls_long_noalloc_stddev                   -0.1055         +0.1139             2             2             1             1
BM_sinsp_sanitize_string_slow_path_c1_controls_long_noalloc_cv                       -0.1058         +0.1135             0             0             0             0
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_alloc_mean                    -0.0120         -0.0120           328           324           328           324
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_alloc_median                  -0.0118         -0.0118           327           324           327           323
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_alloc_stddev                  -0.4357         -0.4446             2             1             2             1
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_alloc_cv                      -0.4288         -0.4379             0             0             0             0
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_noalloc_mean                  -0.0175         -0.0176           220           216           220           216
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_noalloc_median                -0.0196         -0.0197           220           216           220           216
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_noalloc_stddev                -0.0629         -0.0672             1             1             1             1
BM_sinsp_sanitize_string_slow_path_sparse_invalid_long_noalloc_cv                    -0.0461         -0.0505             0             0             0             0
BM_sinsp_sanitize_string_slow_path_all_invalid_long_alloc_mean                       +0.0009         +0.0009         12455         12467         12451         12462
BM_sinsp_sanitize_string_slow_path_all_invalid_long_alloc_median                     +0.0010         +0.0010         12454         12466         12450         12463
BM_sinsp_sanitize_string_slow_path_all_invalid_long_alloc_stddev                     +0.0631         +0.0046             6             7             6             6
BM_sinsp_sanitize_string_slow_path_all_invalid_long_alloc_cv                         +0.0622         +0.0037             0             0             0             0
BM_sinsp_sanitize_string_slow_path_all_invalid_long_noalloc_mean                     +0.0001         +0.0002         12244         12246         12240         12242
BM_sinsp_sanitize_string_slow_path_all_invalid_long_noalloc_median                   +0.0001         +0.0002         12243         12244         12239         12241
BM_sinsp_sanitize_string_slow_path_all_invalid_long_noalloc_stddev                   -0.1383         -0.0388             5             4             4             4
BM_sinsp_sanitize_string_slow_path_all_invalid_long_noalloc_cv                       -0.1384         -0.0390             0             0             0             0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved area/driver-kmod area/driver-modern-bpf area/drivers Anything that cannot be associated to any other `area/driver-` label area/libpman dco-signoff: yes kind/sync PRs syncing branch with changes coming from another branch lgtm release-note-none size/L

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants