Commit Graph

2173 Commits (3d7fbaad28fc8ad49f0a5afb08c686011ed25c5c)
 

Author SHA1 Message Date
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.
6 days ago
Tamir Duberstein 08cf90881f
integration-test: extract run_pin_program_lifecycle_test 6 days ago
Tamir Duberstein fe43f776c3
integration-test: extract from_pin 6 days ago
Tamir Duberstein 0840faf6b1
integration-test: extract pin paths 6 days ago
Tamir Duberstein 0f1c975632
integration-test: extract run_unload_program_test 6 days ago
Tamir Duberstein a6458804fc
integration-test: extract types 6 days ago
Tamir Duberstein a2f4951cce
integration-test: remove errant semicolons 6 days ago
Tamir Duberstein 89d746ad1b
integration-test: extract attach fns 6 days ago
Tamir Duberstein 48300b6498
integration-test: extract program names 6 days ago
Tamir Duberstein 4041fe9293
integration-test: move memmove out of pin tests 6 days ago
Tamir Duberstein c2fb7fed6c
Remove useless impl 6 days ago
Tamir Duberstein f76fdf9da5
Improve error output
- Use consistent casing.
- Emit syscall return value.
6 days ago
Tamir Duberstein 82aec26963
flow_dissector: add missing impl_try_into_fdlink 6 days ago
Tamir Duberstein 0cb52e850a
xtask: tolerate curl failure when possible
Codex sandbox forbids network access.
6 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.
6 days ago
Tamir Duberstein 6fc06b9fcf
Remove unused error variant 6 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.
6 days ago
Tamir Duberstein 57a75dfd61
.vscode: always use linux in rust-analyzer 6 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.
6 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
Michal R 98e8c78376 aya-ebpf: Make use of `Borrow` and `BorrowMut` in map methods
Let callers pass either owned objects or references. We do that already
in the user-space methods.
2 weeks ago
Tamir Duberstein de42b80c74
aya,ebpf: add BPF_MAP_TYPE_SK_STORAGE
This map type requires BTF, and we can finally do it!
2 weeks ago
Tamir Duberstein 6babf17969
maps: use shared helpers 2 weeks ago
Tamir Duberstein c9b5f119a3
feature_probe: clarify composite logic 2 weeks ago
Tamir Duberstein 75edc3d294
*: downcase log strings 2 weeks ago
Tamir Duberstein 742f700dcc
maps: add newline between doc and imports 2 weeks ago
Tamir Duberstein 0013ff4e9e
ebpf: use null pointers at runtime
The values here do not matter, this is just to get type information.
2 weeks ago
Tamir Duberstein 275c5b6bbc
ebpf: use `ptr::from_ref`
This is consistent with other such conversions.
2 weeks ago
Tamir Duberstein a2324e6e50
Add Brewfile 2 weeks ago
Tamir Duberstein b73b9092ee
Add AGENTS.md 3 weeks ago
Tamir Duberstein fe99fa1d2e
ebpf: run clippy with target=bpf
This build warnings from integration tests and makes `aya-ebpf`'s build
script stricter.
3 weeks ago
Tamir Duberstein 552b69367f
xtask: remove outdated snippet
We handed this to QEMU in e3bfeb9dd6.
3 weeks ago
Tamir Duberstein bb45904b08
xtask: patch gen_init_cpio.c
Recent changes[0][1] have broken compatibility with macOS; add a patch
to conditionally compile these snippets.

Patch and compile the source unconditionally; caching only the network
portion is good enough and less error prone.

[0] ae18b94099
[1] 97169cd6d9
3 weeks ago
dependabot[bot] 8e31f5fa43
Merge pull request #1355 from aya-rs/dependabot/cargo/cargo-crates-7838c61200 3 weeks ago
dependabot[bot] ace02870f2
build(deps): update cargo_metadata requirement in the cargo-crates group
Updates the requirements on [cargo_metadata](https://github.com/oli-obk/cargo_metadata) to permit the latest version.

Updates `cargo_metadata` to 0.22.0
- [Release notes](https://github.com/oli-obk/cargo_metadata/releases)
- [Changelog](https://github.com/oli-obk/cargo_metadata/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oli-obk/cargo_metadata/compare/0.22.0...0.22.0)

---
updated-dependencies:
- dependency-name: cargo_metadata
  dependency-version: 0.22.0
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
3 weeks ago
Tamir Duberstein 5f5305c2a8
lint all crates; enable strict pointer lints 3 weeks ago
Tamir Duberstein ec3eacc1d8
Increase VM memory
Since 6.1.0-40 we're seeing `Initramfs unpacking failed: write error`.
3 weeks ago
Tamir Duberstein d1bb7bcc38
deny clippy::unnecessary_cast 3 weeks ago