Commit Graph

2077 Commits (ab182be622acb245db0adef58591978208bcdb2c)
 

Author SHA1 Message Date
Thomas Bertschinger ab182be622 aya: `construct_debuglink_path()` should be infallible
`construct_debuglink_path()` returns a `Result`, but it doesn't actually
do anything that can fail. This means callers must do a useless
`unwrap()` to get at the return value.

This fixes the signature to reflect that the function is infallible.
1 day ago
Tamir Duberstein 0b1fbe1cd3
integration-test: add missing `test_log` decorator
Use the fully qualified macro name which composes better with
`test_case` and makes it easier to spot cases where it is missing.
1 day ago
Tamir Duberstein 61376c4608
aya-log: Remove tokio dep
Require the caller to provide their own executor.
1 day ago
Tamir Duberstein 3f02127b6b
aya: `impl AsFd for RingBuf`
This bound is needed for e.g. `smol::Async`.
2 days ago
Tamir Duberstein 9be2d723ce
aya-log: Replace AsyncPerfEventArray with RingBuf
This doesn't get us to zero copy because the reserve/submit APIs do not
support DSTs for reasons I don't remember.

Now that it is unused in userspace, move `LOG_BUF_CAPACITY` to
`aya-log-ebpf` by making its type `LogValueLength` which obviates the
need for `log_value_length_sufficient`.
2 days ago
Tamir Duberstein 8fb19264da
aya-log-ebpf: tidy up `macro_support`
Move top level items into and remove unused items from `macro_support`.
2 days ago
Tamir Duberstein 600927d6fc
aya-log-ebpf: use destructuring 2 days ago
Tamir Duberstein 90c2165231
Avoid shadowing `buf` 2 days ago
Tamir Duberstein 6a9ef2b43b
Replace macros with loops 2 days ago
Tamir Duberstein 87188f621a
Remove pointless `map_err` calls 2 days ago
Tamir Duberstein 44b26b3b50 integration-test: use only readable interest 2 days ago
Tamir Duberstein 5fa52ac5c1 integration-test: remove an allocation 2 days ago
Tamir Duberstein f08772ec2f test-distro: enable rust backtrace 2 days ago
dependabot[bot] cfff75166c build(deps): update public-api requirement in the cargo-crates group
Updates the requirements on [public-api](https://github.com/cargo-public-api/cargo-public-api) to permit the latest version.

Updates `public-api` to 0.47.1
- [Release notes](https://github.com/cargo-public-api/cargo-public-api/releases)
- [Changelog](https://github.com/cargo-public-api/cargo-public-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cargo-public-api/cargo-public-api/compare/public-api-v0.47.0...public-api-v0.47.1)

---
updated-dependencies:
- dependency-name: public-api
  dependency-version: 0.47.1
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
2 weeks ago
Tamir Duberstein 30d5c9f53e Remove dead code expectation fixed upstream
See https://github.com/rust-lang/rust/commit/c93fac7d64394c6b926d863c19.
2 weeks ago
tamird bd0424ca61 aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
4 weeks ago
Tamir Duberstein eda29958f8 Use CRABBY_GITHUB_TOKEN for regen PRs
See https://github.com/peter-evans/create-pull-request/issues/48.
4 weeks ago
dependabot[bot] 6d5826fe99
Merge pull request #1277 from aya-rs/dependabot/cargo/cargo-crates-2948a9e609 1 month ago
dependabot[bot] f96250e80d
build(deps): bump the cargo-crates group with 2 updates
Updates the requirements on [bindgen](https://github.com/rust-lang/rust-bindgen) and [which](https://github.com/harryfei/which-rs) to permit the latest version.

Updates `bindgen` to 0.71.1
- [Release notes](https://github.com/rust-lang/rust-bindgen/releases)
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/rust-bindgen/compare/v0.71.0...v0.71.1)

Updates `which` to 7.0.3
- [Release notes](https://github.com/harryfei/which-rs/releases)
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/harryfei/which-rs/compare/7.0.0...7.0.3)

---
updated-dependencies:
- dependency-name: bindgen
  dependency-version: 0.71.1
  dependency-type: direct:production
  dependency-group: cargo-crates
- dependency-name: which
  dependency-version: 7.0.3
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
1 month ago
dependabot[bot] d1ed76e626
Merge pull request #1273 from aya-rs/dependabot/cargo/cargo-crates-af2cda06bf 1 month ago
dependabot[bot] a7e3e6d4d9
build(deps): bump the cargo-crates group with 2 updates
Updates the requirements on [cargo_metadata](https://github.com/oli-obk/cargo_metadata) and [object](https://github.com/gimli-rs/object) to permit the latest version.

Updates `cargo_metadata` to 0.19.2
- [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.19.0...0.19.2)

Updates `object` to 0.36.7
- [Changelog](https://github.com/gimli-rs/object/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gimli-rs/object/compare/0.36.0...0.36.7)

---
updated-dependencies:
- dependency-name: cargo_metadata
  dependency-version: 0.19.2
  dependency-type: direct:production
  dependency-group: cargo-crates
- dependency-name: object
  dependency-version: 0.36.7
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
1 month ago
dependabot[bot] e239f3abbd
Merge pull request #1269 from aya-rs/dependabot/github_actions/github-actions-b6130af3f2 1 month ago
dependabot[bot] e1fa363619
build(deps): bump DavidAnson/markdownlint-cli2-action
Bumps the github-actions group with 1 update: [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action).


Updates `DavidAnson/markdownlint-cli2-action` from 19 to 20
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](https://github.com/davidanson/markdownlint-cli2-action/compare/v19...v20)

---
updated-dependencies:
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: '20'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
1 month ago
Tamir Duberstein 37257fe7cd
Fix MD059/descriptive-link-text 1 month ago
Tamir Duberstein ccf6c4707f aya-ebpf: disable generic_const_exprs
This has recently regressed on nightly.

See https://github.com/rust-lang/rust/issues/141492.
2 months ago
Tamir Duberstein 4f654865e9 aya-ebpf: add a dedicated generic_const_exprs cfg 2 months ago
Tamir Duberstein 630a767117 Split relocation tests into multiple files
This avoids requiring kernel support for all types of relocations when
testing a specific type.
2 months ago
Tamir Duberstein c8e9037ca6 Avoid uncontrolled stdout into cargo
This fixes rebuild on change of C sources by black-holing:
- Output of `make` (harmless).
- Output of `llmv-objcopy` (harmful: binary data).
2 months ago
Tamir Duberstein 025b6eaa0d Use a macro to reduce boilerplate 2 months ago
Tamir Duberstein b6daf463e6 Remove stale comment since a1b46ece05 2 months ago
Mehnaz Yunus 4b5ba53a36 aya: implement TryFrom<[Program Type]> for FdLink for various program types
Implements TryFrom for FdLink for CgroupSkb, CgroupSock, CgroupSockAddr
and SockOps program types. This allows support for link pinning for
these program types, aligning with the documentation for FdLink.

Fixes: #739

Co-authored-by: Benjamin Barzen <bbarzen@amazon.com>
2 months ago
Tyrone Wu 7a0dabc295 aya: short-circuit info field if non-zero
Short-circuits `CACHE` to true if the field is non-zero.

This saves from executing the probing logic since the logic essentially
checks if the field can process (or doesn't error) non-zero value.
2 months ago
Tyrone Wu 23bc5b5836 aya,aya-obj: cache feat probed info fields
Cached probed for ProgramInfo fields instead of exposing it through
global FEATURE. Probing occurs on cache miss, which happens when first
accessing the field, *and* if the field is 0.
2 months ago
Tyrone Wu bd492860f5 aya: add feature probing for map type
Add API that probes whether kernel supports a map type.
2 months ago
Tyrone Wu ab77decd9a aya,aya-obj: add feature probing program type
Adds API that probes whether kernel supports a program type.
2 months ago
Dave Tucker f74a157907
Merge pull request #1262 from dave-tucker/stabilize-links
feat(aya): Make LinkInfo and loaded_links public
2 months ago
Dave Tucker 7dba5a41ad feat(aya): Make LinkInfo and loaded_links public
We have had loaded_links in the API as `#[doc(hidden)]` for a while.
I've been using it in bpfman and it's been fine. This commit does the
minimal work required to make the API stable.

We expose a `LinkInfo` type - similar to `ProgInfo` - which wraps the
generated type. In this case, `bpf_link_info`.

A few accessor functions have been added for `id`, `link_type` and
`program_id`. There are many more fields that could be (eventually)
made public.

As a convenience, `LinkInfo` can be retrieved from an existing FdLink
by using `FdLink::info()`.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2 months ago
dependabot[bot] 92c73a72e7
Merge pull request #1263 from aya-rs/dependabot/cargo/cargo-crates-b22b264ef4 2 months ago
dependabot[bot] 95c03e6600
build(deps): update nix requirement in the cargo-crates group
Updates the requirements on [nix](https://github.com/nix-rust/nix) to permit the latest version.

Updates `nix` to 0.29.0
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.29.0...v0.29.0)

---
updated-dependencies:
- dependency-name: nix
  dependency-version: 0.29.0
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months ago
Omri Steiner 33c9f2b2b2 aya: uprobe: use PathBuf for ResolveSymbolError::DebuglinkAccessError
Makes no sense to use a string, as it's a path.
This breaks the public API.
2 months ago
Omri Steiner 90d5604877 aya: uprobe attach: use mmap instead of reading whole binaries to memory 2 months ago
Omri Steiner 647100faa7 aya: clean up resolve_symbol a bit
Instead of using intermediate values to extend the lifetime of the
object::File, we just separate the branches.
2 months ago
Omri Steiner 3aded0e0a5 aya: move Mmap struct to aya::util 2 months ago
Tamir Duberstein 583709f6a0 appease `clippy::uninlined-format-args` 3 months ago
dependabot[bot] c65a200e9a
Merge pull request #1256 from aya-rs/dependabot/cargo/cargo-crates-9bb5a8e9c0 3 months ago
dependabot[bot] c0ff1aa0cc
build(deps): update network-types requirement in the cargo-crates group
Updates the requirements on [network-types](https://github.com/vadorovsky/network-types) to permit the latest version.

Updates `network-types` to 0.0.7
- [Release notes](https://github.com/vadorovsky/network-types/releases)
- [Changelog](https://github.com/vadorovsky/network-types/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vadorovsky/network-types/compare/v0.0.7...v0.0.7)

---
updated-dependencies:
- dependency-name: network-types
  dependency-version: 0.0.7
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
3 months ago
Tamir Duberstein 6004fcdb0f aya-ebpf: put mem{set,move,cpy} behind cfg(target_arch = "bpf")
Address some lints while I'm here.
3 months ago
Tamir Duberstein eab5661a0e aya-build: enable BTF 3 months ago
Tamir Duberstein 0237e36dbe ci: test against 6.12 rather than 6.10
6.12 is an LTS kernel, while 6.10 is not. The latter has reached EOL and
no longer lives on debian mirrors.
3 months ago
Tamir Duberstein 5732b2c203 test-distro: build without cross toolchain
Make the xz2 dependency optional to allow building without a C cross
compiler. This allows clippy.sh to be used on e.g. macOS more easily:

```
./clippy.sh --target x86_64-unknown-linux-gnu --exclude-features xz2
```
3 months ago