Commit Graph

78 Commits (cf3e2ca677c81224368fb2838ebc5b10ee98419a)

Author SHA1 Message Date
Dave Tucker 5d82d9a73e Add Tests
This moves a large chunk of code from ebpf to shared so we can re-use
write_record_header and write_record_message and friends so that we
can write test cases to ensure that logs are properly formatted
given certain input.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2 years ago
Michal Rostecki 628b473e09 ebpf: Ensure the bounds of log buffer
eBPF verifier rejects programs which are not checking the bounds of the
log buffer before writing any arguments. This change ensures that
written log arguments.

In practice, it means that doing this kind of checks is not going to be
needed in eBPF program code anymore:

33a1aee2ea/echo-ebpf/src/main.rs (L47)

Tested on:

876f8b4551

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
2 years ago
Michal Rostecki 70b4e68130 common: Bump the buffer size
1024 is too small for many kernel string limits (i.e. PATH_MAX, which is
4096).

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
2 years ago
Alessandro Decina bd9a5c8fdf aya-log, aya-log-common: start next development iteration 0.1.10-dev.0 2 years ago
Alessandro Decina 8bc1bbb3ab aya-log, aya-log-common: release version 0.1.9 2 years ago
Alessandro Decina a8d133f6b0 Add cargo-release config 2 years ago
Alessandro Decina d1a0ce51ee xtask: do not release 2 years ago
Alessandro Decina c4d89fa13c aya-log: use stricter version for the aya-log-common dep 2 years ago
Alessandro Decina bdb2750e66 ebpf: inline write_record_header
This seems to help the verifier keep track of where we're writing into
LOG_BUF
2 years ago
Michal Rostecki 81befa0661 Update aya to 0.10.7
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
2 years ago
Michal Rostecki ca1fe7e05f Format arguments in userspace
This change moves away argument formatting from eBPF to the userspace.
eBPF part of aya-log writes unformatted log message and all arguments to
the perf buffer and the userspace part of aya-log is formatting the
message after receiving all arguments.

Aya-based project to test this change:

https://github.com/vadorovsky/aya-log-example

Fixes: #4
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
Signed-off-by: Tuetuopay <tuetuopay@me.com>
Co-authored-by: Tuetuopay <tuetuopay@me.com>
2 years ago
Alessandro Decina 9b229d00e1 Don't recompute the record length 2 years ago
Alessandro Decina 7f8d7057df ebpf: initialize AYA_LOGS with max_entries=0
This way aya will create one perf buffer for each cpu
2 years ago
Alessandro Decina 2800454763 Fix clippy warning 2 years ago
Alessandro Decina 8bde15dad7 Add copy of README.md inside aya-log/
Needed for crates.io
2 years ago
Alessandro Decina 5e18a715b2 Add missing manifest fields 2 years ago
Alessandro Decina 31e71f8db5 (cargo-release) version 0.1.1 2 years ago
Alessandro Decina 29955b2287 (cargo-release) version 0.1.1 2 years ago
Alessandro Decina 6d14a16d8e git add .cargo and xtask 2 years ago
Alessandro Decina cced3da5c8 Update to aya 0.10.5 2 years ago
Alessandro Decina 9ab9c80183 Simplify BpfLogger::init
Make BpfLogger::init(bpf) log using the default logger. Add
BpfLoger::init_with_logger(bpf, logger) for logging using a custom
logger instance.
2 years ago
Alessandro Decina 2ac433449c Minor tweaks to make the verifier's job easier 2 years ago
Alessandro Decina b14d4bab2f Switch to aya-ufmt 2 years ago
Alessandro Decina 22d8f86fbb Use aya_bpf::maps::PerfEventByteArray to output logs 2 years ago
Alessandro Decina 741957f945 Use aya_log_ebpf::ufmt instead of ::ufmt 2 years ago
Alessandro Decina 0d7ac3eb3e Add ufmt to readme 2 years ago
Alessandro Decina 5df853cfb0 Update readme 2 years ago
Alessandro Decina b29a061bce Initial commit 2 years ago