Skip to content

[DO NOT MERGE] testing s390x branches #1170

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 32 commits into from

Conversation

Stringy
Copy link
Collaborator

@Stringy Stringy commented May 16, 2023

Description

Running CI for #1072

hbrueckner and others added 26 commits March 28, 2023 11:45
Install the sched/ tracepoints only if the respective capture
symbolic constant is defined.  Also w/o BPF_SUPPORTS_RAW_TRACEPOINTS,
the `schred_process_fork` tracepoint cannot be used and, hence,
disable it.

Signed-off-by: Hendrik Brueckner <[email protected]>
The Falco libs BPF driver is designed to catch all syscalls through
the sys_enter and sys_exit tracepoints.  The collector custom
probe attaches to particular system calls only.  In that case,
the tracepoint context depends on the syscall with a syscall-specific
format (structure).

This commit converts the syscall-specific format into the format
sys enter format expected by Falco's BPF driver and filler programs.
Previously, the custom probe copied data from beyond the tracepoint
context. This resulted in offset check failure and a permission denied
when attaching BPF probe (see also notes in the custom probe).

This is the sys enter path.  For the sys exit path, the syscall-specific
exit format (which is identical for direct attached syscalls) needs
to be aligned (wrt. to offsets) with the 'catch-all' sys exit format.

Signed-off-by: Hendrik Brueckner <[email protected]>
Introduce a symbolic constant to determine if custom collector
probe or the legacy collector probe (RHEL-7 / "catch-all") is
used.

Note that this is also required to align the syscall tracepoint
formats on the exit event of direct vs. generic syscall exit.

Signed-off-by: Hendrik Brueckner <[email protected]>
For s390x, glibc, Golang use the "socketcall" syscall to multiplex
socket calls (e.g. connect, accept, ...).  This commit provides
the necessary entry/exit path to handle socketcalls.

Respective socketcall handling is also required in the Falco BPF
driver.  For the collector custom probe, additional changes are
required because BPF_SUPPORTS_RAW_TRACEPOINTS is not used.  Also
the socketcall implementation filters socket calls according to
the defined collector syscalls (on enter and exit syscall path).
For the syscall enter, also do pre-filtering in the custom probe
because of direct access to the socketcall arguments.

Signed-off-by: Hendrik Brueckner <[email protected]>
Co-authored-by: Giles Hutton <[email protected]>
Signed-off-by: Hendrik Brueckner <[email protected]>
Suggested-by: Hendrik Brueckner <[email protected]>
Signed-off-by: Mauro Ezequiel Moltrasio <[email protected]>
Co-authored-by: Hendrik Brueckner <[email protected]>
Signed-off-by: Mauro Ezequiel Moltrasio <[email protected]>
@openshift-ci
Copy link

openshift-ci bot commented May 16, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@github-actions
Copy link

github-actions bot commented May 16, 2023

Kernel Method Without Collector Time (secs) With Collector Time (secs) Baseline median (secs) Collector median (secs) PValue
rhel.rhel-8 ebpf 115.746 110.112 204.92 213.7 🔴
ubuntu-os.ubuntu-1804-lts ebpf 246.095 244.742 206.11 213.49 🟢
ubuntu-os.ubuntu-2004-lts ebpf 252.556 262.707 236.1 234.97 🟢
ubuntu-os.ubuntu-2204-lts ebpf 140.061 138.195 222.56 229.05 🟢

@Stringy Stringy force-pushed the giles/testing-s390x-changes branch from 35d7d4d to 209d73d Compare May 25, 2023 08:36
@Stringy
Copy link
Collaborator Author

Stringy commented May 26, 2023

Closing, as original PR is now merged

@Stringy Stringy closed this May 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants