Commit Graph

2191 Commits (0144c0eb22d08b29ab6f9f5e97e1ea1d9866fd41)
 

Author SHA1 Message Date
Tamir Duberstein 0144c0eb22
integration-test: defer cleanup to ensure unpin 4 days ago
Tamir Duberstein e3f69829de
.github: run old kernels first 4 days ago
Tamir Duberstein c7d4cd3943
ci: test against 5.10
This is the earliest LTS that still exists on debian mirrors.
4 days ago
Tamir Duberstein 907920a629
Skip `cpumap_chain` when attachment fails 4 days ago
Tamir Duberstein 54bd3ac202
Skip `lsm_cgroup` when loading fails
squash into proper check
4 days ago
Tamir Duberstein 2e5f5efbf1
aya: make ProgramInfo a proper enum
This allows us to distinguish between LSM and LSM_CGROUP programs and do
the proper capability check in is_program_supported.
4 days ago
Tamir Duberstein 3d0b53111f
integration-test: remove skips 4 days ago
Tamir Duberstein 8e9404ecd4
aya-obj: apply enum64-to-union fixup in reloc
This code is just awful.
4 days ago
Tamir Duberstein 7224efcad8
aya-obj: patch up 0-size datasec
Use OnceCell for ENUM64 while I'm here as well.
4 days ago
Tamir Duberstein 166ad2f40f
btf: reduce repetition
This code is bad.
4 days ago
Tamir Duberstein 122cf17a43
btf: avoid `unreachable!()` and `unwrap()` 4 days ago
Tamir Duberstein 3ade19b869
Promote BTF loading failure to error on BTF relocs 4 days ago
Tamir Duberstein b2fd9493a8
integration-test: handle !bpf_perf_link 4 days ago
Tamir Duberstein 4c974d33a3
xdp: replace kernel version check with fallback 4 days ago
Tamir Duberstein 0ec60c4f23
Skip `bpf_strncmp` on kernel < 5.17 4 days ago
Tamir Duberstein 4c22a99cb0
Skip af_xdp when AF_XDP is unsupported 4 days ago
Tamir Duberstein 984a0501c6
Raise RLIMIT_MEMLOCK on kernel version < 5.11.0
See https://github.com/cilium/ebpf/blob/main/docs/ebpf/concepts/rlimit.md.
4 days ago
Tamir Duberstein e5306901a0
Skip `test_uprobe_cookie` on kernel < 5.15 5 days ago
Tyrone Wu 3d7fbaad28 aya: enforce valid perf_event type & config combos
Add guardrails for when setting event type and config for perf_event
programs. The `PerfEventConfig` enum now defines the event `type` and
`config` of interest.

Remove public re-exports, and add idiomatic Rust types for:
- perf_hw_id => HardwareEvent
- perf_sw_ids => SoftwareEvent
- perf_hw_cache_id => HwCacheEvent
- perf_hw_cache_op_id => HwCacheOp
- perf_hw_cache_op_result_id => HwCacheResult

The motivation behind this is mainly for the `type` and `config` fields
of `bpf_link_info.perf_event.event`. The newly added enums are planned
to also be used in the `bpf_link_info` metadata.

Although `Breakpoint`/`PERF_TYPE_BREAKPOINT` variant exists, it is not
fully implemented. It's only usage at the moment is in link info.
5 days ago
Tamir Duberstein 08cf90881f
integration-test: extract run_pin_program_lifecycle_test 5 days ago
Tamir Duberstein fe43f776c3
integration-test: extract from_pin 5 days ago
Tamir Duberstein 0840faf6b1
integration-test: extract pin paths 5 days ago
Tamir Duberstein 0f1c975632
integration-test: extract run_unload_program_test 5 days ago
Tamir Duberstein a6458804fc
integration-test: extract types 5 days ago
Tamir Duberstein a2f4951cce
integration-test: remove errant semicolons 5 days ago
Tamir Duberstein 89d746ad1b
integration-test: extract attach fns 5 days ago
Tamir Duberstein 48300b6498
integration-test: extract program names 5 days ago
Tamir Duberstein 4041fe9293
integration-test: move memmove out of pin tests 5 days ago
Tamir Duberstein c2fb7fed6c
Remove useless impl 5 days ago
Tamir Duberstein f76fdf9da5
Improve error output
- Use consistent casing.
- Emit syscall return value.
5 days ago
Tamir Duberstein 82aec26963
flow_dissector: add missing impl_try_into_fdlink 5 days ago
Tamir Duberstein 0cb52e850a
xtask: tolerate curl failure when possible
Codex sandbox forbids network access.
5 days ago
Tamir Duberstein 667790e103
xtask: avoid `git submodule update` when possible
`git submodule update` fails when running in a codex sandbox:

```
  error: could not lock config file /Users/tamird/src/aya/.git/modules/libbpf/config: Operation not permitted
```

so just avoid it when not necessary.
5 days ago
Tamir Duberstein 6fc06b9fcf
Remove unused error variant 5 days ago
Tamir Duberstein 4ce1e29804
clippy.sh: build for BPF after everything else
In cases where I run `./clippy.sh ... -p <crate>` I really want the
results for that crate to come quickly.
5 days ago
Tamir Duberstein 57a75dfd61
.vscode: always use linux in rust-analyzer 5 days ago
Christian A. Jacobsen a98b638fa9 feat(log): add support for logging raw pointer types
* Requires the usage of `:p` display hint.
* Will, like stdlib, log with `0x` prefix.
5 days ago
Tamir Duberstein 29dc775535
test-distro: appease unreachable code check
See https://github.com/rust-lang/rust/commit/ff6dc928c5e33ce8e65c6911a7.
1 week ago
Altug Bozkurt fc5387c806
lsm: cgroup attachment type support 2 weeks ago
Tamir Duberstein 66ed37c8a9
integration-test: add LSM 2 weeks ago
Tamir Duberstein 8e75214815
feature_probe: properly check for LSM support
Turns out this is not supported in aarch64 until 6.4.
2 weeks ago
Tamir Duberstein 9ba87c661b
xtask: copy kernel config into the initramfs image
When preparing the VM initramfs detect the `config-*` file that ships alongside
the vmlinuz/modules in each kernel archive and install it under `/boot` (both
as `/boot/config` and `/boot/config-<version>`). This makes the running
kernel’s configuration available inside the guest for the integration tests.
2 weeks ago
Tamir Duberstein 5f046899b5
xtask: teach integration-test vm to consume kernel debs directly
Bundle handling of Debian kernel archives into xtask so callers can pipe
the raw `.deb` paths straight into `cargo xtask integration-test vm …`.
The driver now extracts each archive into `<cache>/kernel-archives`,
locates the matching `vmlinuz-*`, `lib/modules/*`, and config files, and
feeds those into the initramfs build without requiring the user to
pre-run dpkg/tar. With this in place we drop
`.github/scripts/find_kernels.py`, simplify AGENTS.md/CI instructions to
use `find test/.tmp -name '*.deb'`, remove the gnu-tar requirement we no
longer need, and add `tar` as a workspace dependency for the extractor.
2 weeks ago
Tamir Duberstein fab4fc44b2
xtask: reduce `fs` imports 2 weeks ago
Tamir Duberstein d16711b2be
xtask: avoid variables named `cmd` and `child` 2 weeks ago
Tamir Duberstein ffa65efb36
integration-ebpf: avoid mentioning the size 2 weeks ago
Tamir Duberstein d82ed60795
.cargo/config: use musl-cross on x86_64 as well
This allows us to run virtualized integration tests on macOS hosts.

Bump Ubuntu to 24.04 because we seem to be getting miscompilation on
x86_64 otherwise (when using `x86_64-linux-musl-gcc`). Add `apt install
liblzma-dev` since it doesn't seem to be present in ubuntu-24.04.
2 weeks ago
Tamir Duberstein 71f6176e24
xtask: ensure we actually built depmod 2 weeks ago
Tamir Duberstein 82750ae3b1
.github: attempt to enable KVM 2 weeks ago
Tamir Duberstein 9bc185a61e
aya-tool: simplify and improve error handling 2 weeks ago