Skip to content

Commit d3993e1

Browse files
committed
update readme
1 parent af53f97 commit d3993e1

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
`bpftime` is a High-Performance userspace eBPF runtime and General Extension Framework designed for userspace. It enables faster Uprobe, USDT, Syscall hooks, XDP, and more event sources by bypassing the kernel and utilizing an optimized compiler like `LLVM`.
88

9-
> ⚠️ **Note**: `bpftime` is actively under development, and it's not yet recommended for production use now. See our [roadmap](#roadmap) for details. We'd love to hear your feedback and suggestions! Please feel free to open an issue or [Contact us](#contact-and-citations).
10-
119
📦 [Key Features](#key-features) \
1210
🔨 [Quick Start](#quick-start) \
1311
🔌 [Examples & Use Cases](#examples--use-cases) \
@@ -19,6 +17,8 @@
1917

2018
bpftime is not `userspace eBPF VM`, it's a userspace runtime framework includes everything to run eBPF in userspace: `loader`, `verifier`, `helpers`, `maps`, `ufunc` and multiple `events` such as Observability, Network, Policy or Access Control. It has multiple VM backend options support. For eBPF VM only, please see [llvmbpf](https://github.com/eunomia-bpf/llvmbpf).
2119

20+
> ⚠️ **Note**: `bpftime` is currently under active development and may contain bugs or unstable API. Please use it with caution. For more details, check our [roadmap](#roadmap). We'd love to hear your feedback and suggestions! Feel free to open an issue or [Contact us](#contact-and-citations).
21+
2222
## Why bpftime? What's the design Goal?
2323

2424
- **Performance Gains**: Achieve better performance by `bypassing the kernel` (e.g., via `Userspace DBI` or `Network Drivers`), with more configurable, optimized and more arch supported JIT/AOT options like `LLVM`, while maintaining compatibility with Linux kernel eBPF.
@@ -197,6 +197,7 @@ See [eunomia.dev/bpftime/documents/build-and-test](https://eunomia.dev/bpftime/d
197197
`bpftime` is continuously evolving with more features in the pipeline:
198198

199199
- [ ] Keep compatibility with the evolving kernel
200+
- [ ] Refactor for General Extension Framework
200201
- [ ] Trying to refactor, bug fixing for `Production`.
201202
- [ ] More examples and usecases:
202203
- [X] Userspace Network Driver on userspace eBPF

benchmark/uprobe/uprobe.bpf.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,20 @@ SEC("uprobe/benchmark/test:__bench_write")
5858
int BPF_UPROBE(__bench_write, char *a, int b, uint64_t c)
5959
{
6060
char buffer[5] = "text";
61-
bpf_probe_write_user(a, buffer, sizeof(buffer));
61+
for (int i = 0; i < 1000; i++) {
62+
bpf_probe_write_user(a, buffer, sizeof(buffer));
63+
}
6264
return b + c;
6365
}
6466

6567
SEC("uprobe/benchmark/test:__bench_read")
6668
int BPF_UPROBE(__bench_read, char *a, int b, uint64_t c)
6769
{
6870
char buffer[5];
69-
int res = bpf_probe_read_user(buffer, sizeof(buffer), a);
71+
int res;
72+
for (int i = 0; i < 1000; i++) {
73+
bpf_probe_read_user(buffer, sizeof(buffer), a);
74+
}
7075
return b + c + res + buffer[1];
7176
}
7277

0 commit comments

Comments
 (0)