Commit Graph

1726 Commits (86e279ef0add9ef55bf76301f41073caccf62888)
 

Author SHA1 Message Date
Andrés Medina 68ba02002f aya: make KernelVersion::code public 12 months ago
Andrew Stoycos 958931efcb
Merge pull request #746 from dave-tucker/markdownlint
.github: Add markdownlint
12 months ago
Dave Tucker 8780a50be1 .github: Add markdownlint
This adds a linter to catch common markdown formatting errors.
The linter used is markdownlint-cli2 which is available on all platforms
and has an associated Github Action to automate these checks in CI.

Configuration is checked in at .markdownlint-cli2.yaml.

You may run the check locally using `markdownlint-cli2`.
Or you may install the extension for VSCode:
DavidAnson.vscode-markdownlint

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
12 months ago
Tamir Duberstein 33b2e45ad3
Merge pull request #834 from aya-rs/better-kvm-check
xtask: attempt to open /dev/kvm
1 year ago
Tamir Duberstein 42cc175aeb
xtask: attempt to open /dev/kvm
We're seeing test failures where KVM is present but we aren't able to use it.

See https://github.com/actions/runner-images/issues/7670#issuecomment-1760184162.
1 year ago
dependabot[bot] e68fa14d71
Merge pull request #832 from aya-rs/dependabot/cargo/bindgen-0.69 1 year ago
dependabot[bot] c1b367eb4a
build(deps): update bindgen requirement from 0.68 to 0.69
Updates the requirements on [bindgen](https://github.com/rust-lang/rust-bindgen) to permit the latest version.
- [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.68.0...v0.68.1)

---
updated-dependencies:
- dependency-name: bindgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
Tamir Duberstein 8647b9055f
Merge pull request #829 from tamird/bless-api-nightly
public-api: bless with new nightly
1 year ago
Tamir Duberstein 6e256fad5b public-api: bless with new nightly
See https://github.com/rust-lang/rust/commit/58a80c85b9323e59e1b7e744d6.
1 year ago
Tuetuopay e148ce1af3 tests/xdp: don't leak memory in AF_XDP test 1 year ago
Tuetuopay aa5ff517e7 tests: add AF_XDP test using xdpilone 1 year ago
Tamir Duberstein cc29c8a74d
Merge pull request #826 from tamird/lint-nightly
aya-bpf-cty: remove empty module
1 year ago
Tamir Duberstein b65a652991
aya-bpf-cty: remove empty module
This triggers the unused import lint after
https://github.com/rust-lang/rust/commit/482275b19422b871b986ec0400257a.
1 year ago
dependabot[bot] 67fe16e723
Merge pull request #825 from aya-rs/dependabot/cargo/async-io-2.0 1 year ago
dependabot[bot] c89b2d156d
build(deps): update async-io requirement from 1.3 to 2.0
Updates the requirements on [async-io](https://github.com/smol-rs/async-io) to permit the latest version.
- [Release notes](https://github.com/smol-rs/async-io/releases)
- [Changelog](https://github.com/smol-rs/async-io/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/async-io/compare/v1.3.0...v1.13.0)

---
updated-dependencies:
- dependency-name: async-io
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
dependabot[bot] 666bb8e7cf
Merge pull request #824 from aya-rs/dependabot/cargo/which-5.0.0 1 year ago
dependabot[bot] 3824b3d479
build(deps): update which requirement from 4.4.0 to 5.0.0
Updates the requirements on [which](https://github.com/harryfei/which-rs) to permit the latest version.
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/harryfei/which-rs/compare/4.4.0...4.4.2)

---
updated-dependencies:
- dependency-name: which
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
Tamir Duberstein 847f4105a7
Merge pull request #823 from tamird/clippy
aya-bpf-macros: appease clippy
1 year ago
Tamir Duberstein a31332fb6c aya-bpf-macros: appease clippy
```
warning: accessing first element with `args.args.get(0)`
  --> aya-bpf-macros/src/args.rs:71:24
   |
71 |     if let Some(arg) = args.args.get(0) {
   |                        ^^^^^^^^^^^^^^^^ help: try: `args.args.first()`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
   = note: `#[warn(clippy::get_first)]` on by default
```

Appears https://github.com/rust-lang/rust-clippy/commit/31fd282732e15811
has just landed in nightly.
1 year ago
Tamir Duberstein f037a94c9f
Merge pull request #821 from Tuetuopay/fix-udeps
aya: fix unused async-io dependency linter error
1 year ago
Tuetuopay 984c08cbad aya: fix unused async-io dependency linter error
Not using the `dep:` syntax created a Cargo feature flag for async-io,
though this feature alone does nothing without the `async_std` or
`async_tokio` features.
1 year ago
Tamir Duberstein 8154fb79d3
Merge pull request #737 from aya-rs/more-kernels
github: run integration tests on local kernel
1 year ago
Tamir Duberstein fa6f5e2532
github: run integration tests on local kernel
This tests on 6.2.0-1012-azure (see
https://github.com/actions/runner-images/releases/tag/ubuntu22%2F20231001.1).
1 year ago
Alessandro Decina 35e21ae007 aya: don't parse labels as programs
Fixes a bug introduced by https://github.com/aya-rs/aya/pull/413 where
we were generating a bunch of spurious LBB* programs.
1 year ago
Alessandro Decina d679a973ca integration-tests: enable logs
Use test_log::test so setting RUST_LOG=aya=debug works and it's easier
to debug failures.
1 year ago
Alessandro Decina 2227223a96 aya-log: fix hygiene
Before this change we leaked some bindings to the calling scope, so for
instance logging a variable named "len" led to a compile error.
1 year ago
ajwerner 62849944f2
Merge pull request #629 from ajwerner/ringbuf 1 year ago
Andrew Werner e2cf734490 aya: Implement RingBuf
This implements the userspace binding for RingBuf.

Instead of streaming the samples as heap buffers, the process_ring
function takes a callback to which we pass the event's byte region,
roughly following [libbpf]'s API design. This avoids a copy and allows
marking the consumer pointer in a timely manner.

[libbpf]: https://github.com/libbpf/libbpf/blob/master/src/ringbuf.c

Additionally, integration tests are added to demonstrate the usage
of the new APIs and to ensure that they work end-to-end.

Co-authored-by: William Findlay <william@williamfindlay.com>
Co-authored-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
1 year ago
William Findlay 4af9d1bd3e
aya: move mmap from perf_buffer.rs to sys/mod.rs
mmap() is needed for the ring buffer implementation, so move it to a common module
1 year ago
Andrew Werner b73c0a46f5
aya: impl From<obj::InvalidMapTypeError> for MapTypeError 1 year ago
Tamir Duberstein cb455febbb
Merge pull request #814 from tamird/sort-variants-again
maps: sort variants
1 year ago
Tamir Duberstein 8462b69716
maps: sort variants
Missed in 5e637071c1 due to merge skew
with 7b71c7e1cd.
1 year ago
Tamir Duberstein 715d49022e
Merge pull request #812 from tamird/redundant-cargo
Cargo.toml: remove redundant keys
1 year ago
Tamir Duberstein ae612a0a10
Merge pull request #813 from tamird/sort-variants
maps: sort variants
1 year ago
Tamir Duberstein b7ceee4f51
Merge pull request #811 from tamird/libc
aya: import types from std::ffi rather than libc
1 year ago
Tamir Duberstein 5cdd1baf29
aya: import types from std::ffi rather than libc 1 year ago
Tamir Duberstein 5e637071c1
maps: sort variants 1 year ago
Tamir Duberstein cc48523347
Cargo.toml: remove redundant keys
`default-features = false` is already in the root Cargo.toml.
1 year ago
Andrew Stoycos ef27bce619
Merge pull request #783 from astoycos/map_pin2
aya: Implement dedicated map pinning
1 year ago
astoycos 82039144bd integration-test: Add map pinning coverage
Add coverage to the new public api's for
map pinning (pin and unpin) which can be called
on the generic aya::Map type OR explit map types.

Additionally add coverage for the new libbpf
LIBBPF_PIN_BY_NAME behavior.

Signed-off-by: astoycos <astoycos@redhat.com>
1 year ago
astoycos 7b71c7e1cd aya/maps: add pin() api
- Adds new `maps_mut()` API to the BpfManager to allow us to iterate though
and pin all of maps at the same time.

- Adds new pin(Path)/unpin(Path) api to Maps so they
can be generically pinned AFTER load.

- Adds macro for pinning explicit map types in aya.
Convert all explicit map types "inner" field to be
pub crate in order to facilitate this.

Signed-off-by: astoycos <astoycos@redhat.com>
1 year ago
astoycos 0bf97eba64 aya/maps: fix libbpf_pin_by_name
Aligns with libbpf for the special LIBBPF_PIN_BY_NAME
map flag. Specifically if the flag is provided without a pin path
default to "/sys/fs/bpf".

Signed-off-by: astoycos <astoycos@redhat.com>
1 year ago
vadorovsky 66bd85a8de
Merge pull request #806 from vadorovsky/deprecate-syscall-prefix
util: Deprecate `syscall_prefix`
1 year ago
Mike Rostecki bd6ba3ad8b util: Deprecate `syscall_prefix`
Using the prefix only for the host architecture is often not enough,
kernels usually provide symbols for more architectures, which are
used by multilib applications. Handling them might or might not be
necessary depending on the use case. Due to that complexity, we
decided to let the callers to handle prefixes the way they prefer.
1 year ago
Tamir Duberstein 0cd620a9da
Merge pull request #804 from tamird/deflake-xdp
integration/xdp: increase timeout to 60 seconds
1 year ago
Tamir Duberstein 81268b7ac1
integration/xdp: increase timeout to 60 seconds
There's absolutely no reason to have a short timeout here. This has
resulted in at least one flake:
https://github.com/aya-rs/bpf-linker/actions/runs/6384472390/job/17327196576.
1 year ago
Tamir Duberstein 062ebfdc68
integration/xdp: use kernel-allocated port 1 year ago
Tamir Duberstein 64d9799efc
integration/xdp: reduce repetition 1 year ago
ajwerner c547dd7bcc
Merge pull request #800 from ajwerner/deflake-loaded-at-take-2
integration-test: deflake test_loaded_at
1 year ago
Andrew Werner da832e479d integration-test: deflake test_loaded_at
The test could fail due to the lack of clock monotonicity. This PR
deflakes the test by adding retries.

See
https://github.com/aya-rs/aya/actions/runs/6340369670/job/17221591723.
1 year ago