collector icon indicating copy to clipboard operation
collector copied to clipboard

Allow specifying instruction set

Open erthalion opened this issue 3 years ago • 4 comments

Description

Kernel supports few instruction sets [1], and the default one (which is apparently being used at the moment in falco) is going to be the generic or v1, which has certain limitations and requires workarounds. It's possible to instruct llc to search the latest supported instruction set via -mcpu parameter, which generally speaking should result in more compact and potentially more performant generated instructions for the same code. For the support table see great blog post [2] about the topic. The gist for the support is:

v2: Linux v4.14 [3], LLVM v6.0 [4] v3: Linux v5.1 [5], LLVM [6]

Probing is working via performing bpf syscall with various instruction sets and figuring out maximum supported version based on the results. Which means it would work only for the build host, so we need to allow pinning it precisely if needed.

Checklist

  • [ ] Investigated and inspected CI test results
  • [ ] Updated documentation accordingly

Testing Performed

Local testing with instruction set v2.

erthalion avatar Jun 29 '22 14:06 erthalion

@erthalion: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/ubuntu-1804-lts-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test ubuntu-1804-lts-ebpf-integration-tests
ci/prow/sles-15-kernel-module-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test sles-15-kernel-module-integration-tests
ci/prow/cos-85-lts-kernel-module-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-85-lts-kernel-module-integration-tests
ci/prow/cos-dev-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-dev-ebpf-integration-tests
ci/prow/cos-stable-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-stable-ebpf-integration-tests
ci/prow/sles-12-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test sles-12-ebpf-integration-tests
ci/prow/cos-85-lts-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-85-lts-ebpf-integration-tests
ci/prow/cos-beta-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-beta-ebpf-integration-tests
ci/prow/cos-89-lts-kernel-module-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-89-lts-kernel-module-integration-tests
ci/prow/ubuntu-pro-1804-lts-kernel-module-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test ubuntu-pro-1804-lts-kernel-module-integration-tests
ci/prow/ubuntu-pro-1804-lts-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test ubuntu-pro-1804-lts-ebpf-integration-tests
ci/prow/cos-89-lts-ebpf-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test cos-89-lts-ebpf-integration-tests
ci/prow/rhel-sap-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test rhel-sap-integration-tests
ci/prow/rhel-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test rhel-integration-tests
ci/prow/ubuntu-os-integration-tests 74dcb1d53cd083968e2cc90093027c82b5ef3f70 link true /test ubuntu-os-integration-tests

Full PR test history. Your PR dashboard.

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/test-infra repository. I understand the commands that are listed here.

openshift-ci[bot] avatar Nov 03 '22 20:11 openshift-ci[bot]

COLLECTOR_TAG=3.12.x-26-g5adabbe03e
COLLECTOR_BUILDER_TAG=cache

Results for Performance Benchmarks on build #

Kernel Method Without Collector Time (secs) With Collector Time (secs) Baseline median (secs) Collector median (secs) PValue
rhel.rhel-7 ebpf 227.502 268.926 163.24 203.43 :green_circle:
rhel.rhel-7 module 99.216 118.99 184.62 210.4 :green_circle:
rhel.rhel-8 ebpf 235.6 245.594 200.85 211.04 :green_circle:
rhel.rhel-8 module 234.81 257.917 174.47 196.72 :green_circle:
ubuntu-os.ubuntu-1804-lts ebpf 250.682 230.901 189.23 215.86 :red_circle:
ubuntu-os.ubuntu-1804-lts module 223.94 265.805 183.83 216.45 :green_circle:
ubuntu-os.ubuntu-2004-lts ebpf 276.051 266.852 234.73 231.91 :green_circle:
ubuntu-os.ubuntu-2004-lts module 248.769 271.234 224.59 239.44 :green_circle:
ubuntu-os.ubuntu-2204-lts ebpf 248.663 247.724 213.26 226.83 :green_circle:
ubuntu-os.ubuntu-2204-lts module 235.638 272.162 215.97 240.73 :green_circle:

ghost avatar Nov 28 '22 20:11 ghost

@erthalion Is this still relevant?

robbycochran avatar Aug 02 '24 15:08 robbycochran

@robbycochran it is, in the sense that it still could be applied to core_bpf, but has to be evaluated again.

erthalion avatar Aug 02 '24 15:08 erthalion