Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
574033a
feat(starry-kernel): add eBPF JIT compiler framework with riscv64 bac…
CN-TangLin May 23, 2026
d3f8042
fix(starry-kernel): address eBPF JIT review feedback — fix codegen bu…
CN-TangLin May 23, 2026
31c0000
fix(starry-kernel): fix critical riscv64 JIT codegen bugs
CN-TangLin May 24, 2026
33bd0f2
fix(starry-kernel): fix riscv64 JIT jump address calculation
CN-TangLin May 24, 2026
5326420
fix(starry-kernel): fix riscv64 emit_load_imm64 hi/lo loading order
CN-TangLin May 25, 2026
00f2f25
fix(starry-kernel): add missing JSET extra 4 bytes in riscv64 insn_size
CN-TangLin May 25, 2026
4e287ce
fix(starry-kernel): fix riscv64 DIV/MOD zero-division and dynamic bra…
CN-TangLin May 25, 2026
e071ff1
fix(starry-kernel): fix riscv64 JIT ST/STX base register and MOD zero…
CN-TangLin May 25, 2026
23a2654
fix(starry-kernel): fix riscv64 JIT module import path for cross-comp…
CN-TangLin May 25, 2026
9e0e757
fix(starry-kernel): fix riscv64 JIT MOD zero-div, JMP operand swap, a…
CN-TangLin May 26, 2026
98e7a23
fix(starry-kernel): fix riscv64 JIT conditional jump AUIPC offset +4 …
CN-TangLin May 26, 2026
69773df
fix(starry-kernel): add cfg gate for JIT module on unsupported archs …
CN-TangLin May 26, 2026
d297646
fix(starry-ebpf): fix 5 blocking bugs in riscv64 JIT backend
CN-TangLin May 26, 2026
f7aee11
fix(starry-kernel): pad riscv64 JIT branch blocks to match insn_size …
CN-TangLin May 26, 2026
572c5da
fix(starry-kernel): improve riscv64 JIT emit_load_imm64 and add unit …
CN-TangLin May 26, 2026
f589623
fix(starry-kernel): adjust BPF stack frame offset in riscv64 JIT backend
CN-TangLin May 26, 2026
2c79622
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
1289113
fix(starry-kernel): account for frame pointer offset in riscv64 insn_…
CN-TangLin May 27, 2026
83b323e
fix(starry-kernel): add BPF_MOD div-by-zero guard and unified zext32 …
CN-TangLin May 27, 2026
c1b8cdf
fix(starry-kernel): remove redundant zext32 in BPF_MOV and add golden…
CN-TangLin May 27, 2026
1d5967b
fix(starry-kernel): remove duplicate emit_zext32 definition in riscv6…
CN-TangLin May 27, 2026
0222f27
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
f865d92
fix(starry-kernel): add missing bpf_close_all_fds function for #848 c…
CN-TangLin May 27, 2026
9c8ba22
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
b61a458
fix(starry-kernel): fix emit_load_imm64 LUI overflow bug + add arch-i…
CN-TangLin May 27, 2026
be0ad54
fix(starry-kernel): add 'as i32' cast for lo12 in emit_addiw calls
CN-TangLin May 27, 2026
fcd0b05
fix(starry-kernel): precise insn_size for page-aligned imm + BPF_END …
CN-TangLin May 27, 2026
2bd1e76
ci: re-trigger CI (previous failures were flaky tests + GitHub server…
CN-TangLin May 27, 2026
db1d976
ci: re-trigger CI
CN-TangLin May 28, 2026
03955e3
fix(starry-kernel): insn_size page-aligned imm for JMP/ST + skip redu…
CN-TangLin May 28, 2026
4167a13
ci: re-trigger CI
CN-TangLin May 28, 2026
cde80ba
ci: re-trigger CI
CN-TangLin May 28, 2026
9ec10f3
fix(starry-kernel): log::warn! -> warn! in riscv64 JIT (same as x86_6…
CN-TangLin May 28, 2026
9b920e6
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
30dae38
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
f1f3a62
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
91d489f
fix(starry-kernel): improve riscv64 JIT emit_load_imm64 and add unit …
CN-TangLin May 26, 2026
abcd9ab
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
757abe7
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
66e3aa6
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
41706ef
feat(starry-kernel): add x86_64 eBPF JIT backend
CN-TangLin May 23, 2026
a2a6942
fix(starry-kernel): fix critical x86_64 JIT codegen bugs
CN-TangLin May 24, 2026
7e5b975
fix(starry-kernel): fix x86_64 JIT BPF_MOV|BPF_K double immediate load
CN-TangLin May 24, 2026
20b0f08
fix(starry-kernel): remove unused is_64 variable in x86_64 insn_size
CN-TangLin May 24, 2026
78fbbdd
fix(starry-kernel): fix x86_64 JIT emit_divmod dst=RCX overwrite, sma…
CN-TangLin May 25, 2026
9e2623a
fix(starry-kernel): fix x86_64 JIT prologue — mov direction and spuri…
CN-TangLin May 25, 2026
6074f24
fix(starry-kernel): fix x86_64 JIT prologue and optimize JSET/ST/STX
CN-TangLin May 25, 2026
152e6db
fix(starry-kernel): fix x86_64 JIT REX prefix encoding in store/load …
CN-TangLin May 26, 2026
d70d4cc
fix(starry-kernel): add cfg gate for JIT module on unsupported archs …
CN-TangLin May 26, 2026
2c67de6
fix(starry-kernel): fix x86_64 JIT emit_divmod divide-by-zero returni…
CN-TangLin May 26, 2026
7e03385
fix(starry-kernel): adjust BPF stack frame offset in x86_64 JIT backend
CN-TangLin May 26, 2026
4374e83
fix(starry-kernel): fix RCX dst overwrite and correct stack frame off…
CN-TangLin May 27, 2026
c7c3af1
ci: trigger re-run
CN-TangLin May 27, 2026
5ed466e
ci: rebase onto rebased #891
CN-TangLin May 27, 2026
f38263b
ci: re-trigger CI for sg2002 self-hosted flaky test
CN-TangLin May 27, 2026
94c088e
fix(starry-kernel): x86_64 JIT shift insn_size fix + BPF_END warn
CN-TangLin May 27, 2026
00919b7
fix(starry-kernel): fix 2 compile errors in x86_64 JIT
CN-TangLin May 27, 2026
5fd7338
fix(starry-kernel): restore bpf_close_all_fds + fix clippy collapsibl…
CN-TangLin May 27, 2026
1d9eee1
refactor(starry-kernel): simplify redundant sz variable in emit_stx
CN-TangLin May 27, 2026
6989984
fix(starry-kernel): fix shift register alias bug when dst==RCX (BPF r4)
CN-TangLin May 27, 2026
1e10e26
ci: re-trigger CI (previous failures were flaky tests + GitHub server…
CN-TangLin May 27, 2026
c42e7e0
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
8e2416e
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
c12f6dd
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
4256132
fix(starry-kernel): improve riscv64 JIT emit_load_imm64 and add unit …
CN-TangLin May 26, 2026
94055ea
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
8ecc455
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
9a51851
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
744cb2b
ci: trigger re-run
CN-TangLin May 27, 2026
45617de
ci: rebase onto rebased #891
CN-TangLin May 27, 2026
5852bed
ci: re-trigger CI for sg2002 self-hosted flaky test
CN-TangLin May 27, 2026
0f9b9e2
ci: re-trigger CI (previous failures were flaky tests + GitHub server…
CN-TangLin May 27, 2026
c3f0d17
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
143b21a
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
836357a
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
ab81749
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
18b6dd5
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
88a29f6
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
8133fd3
ci: trigger re-run
CN-TangLin May 27, 2026
e1fe690
ci: rebase onto rebased #891
CN-TangLin May 27, 2026
80898b6
ci: re-trigger CI for sg2002 self-hosted flaky test
CN-TangLin May 27, 2026
d771dc1
ci: re-trigger CI (previous failures were flaky tests + GitHub server…
CN-TangLin May 27, 2026
97c06ab
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
542232b
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
f17c59a
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
7c1a2a5
fix(starry-kernel): precise insn_size for page-aligned imm + BPF_END …
CN-TangLin May 27, 2026
3724e6b
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
48e5cc4
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
20593dc
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
98325b8
ci: trigger re-run
CN-TangLin May 27, 2026
86426d9
ci: rebase onto rebased #891
CN-TangLin May 27, 2026
6123599
ci: re-trigger CI for sg2002 self-hosted flaky test
CN-TangLin May 27, 2026
c630f00
ci: trigger re-run for flaky apk-curl loongarch64 network test
CN-TangLin May 27, 2026
aef7c4c
ci: rebase onto dev with kprobe+eBPF merged, keep JIT commits only
CN-TangLin May 27, 2026
b3103cc
ci: re-trigger CI (previous failure was apk-curl flaky test)
CN-TangLin May 27, 2026
e22dd5e
ci: trigger re-run
CN-TangLin May 27, 2026
c22d4ed
ci: rebase onto rebased #891
CN-TangLin May 27, 2026
af38652
ci: re-trigger CI for sg2002 self-hosted flaky test
CN-TangLin May 27, 2026
e87d877
ci: trigger re-run
CN-TangLin May 27, 2026
6fea86f
ci: rebase onto rebased #891
CN-TangLin May 27, 2026
d474c62
fix(starry-kernel): address aarch64 eBPF JIT review — fix JGT cond, c…
CN-TangLin May 23, 2026
b7e982f
fix(starry-kernel): fix aarch64 JIT insn_size for BPF_EXIT
CN-TangLin May 24, 2026
c1426fa
fix(starry-kernel): fix aarch64 JIT JSET 32/64-bit and MOV zero-exten…
CN-TangLin May 24, 2026
2683781
fix(starry-kernel): fix aarch64 JIT emit_load_imm64 W-register encodi…
CN-TangLin May 25, 2026
7bd0ec2
fix(starry-kernel): correct insn_size underestimates in aarch64 JIT b…
CN-TangLin May 25, 2026
bbda65b
fix(starry-kernel): fix aarch64 JIT ST/STX base register and callee-s…
CN-TangLin May 25, 2026
59c3a62
fix(starry-kernel): fix aarch64 JIT STR/LDR/STP/LDP offset encoding b…
CN-TangLin May 26, 2026
772c60f
fix(starry-kernel): save/restore LR in aarch64 JIT prologue/epilogue …
CN-TangLin May 26, 2026
b68ff6b
fix(starry-kernel): adjust BPF stack frame offset in aarch64 JIT backend
CN-TangLin May 26, 2026
945fbfb
ci: trigger re-run for flaky bug-tcp-concurrent-connect QEMU timeout
CN-TangLin May 27, 2026
d0ffc0f
ci: trigger re-run
CN-TangLin May 27, 2026
1a9b92b
ci: rebase onto rebased #892
CN-TangLin May 27, 2026
309de2c
ci: re-trigger CI
CN-TangLin May 27, 2026
ea4ff89
fix(starry-kernel): aarch64 insn_size BPF_ST and JMP fixes (re-applied)
CN-TangLin May 27, 2026
44be99b
fix(starry-kernel): fix X16 (BPF r9) corruption in aarch64 ST/STX/LDX
CN-TangLin May 27, 2026
0e6a555
ci: re-trigger CI (previous failures were flaky tests + GitHub server…
CN-TangLin May 27, 2026
669b726
ci: re-trigger CI
CN-TangLin May 28, 2026
22b8377
fix(starry-kernel): restore bpf_close_all_fds lost during rebase
CN-TangLin May 28, 2026
a093ea4
ci: re-trigger CI
CN-TangLin May 28, 2026
997c1e6
ci: re-trigger CI
CN-TangLin May 29, 2026
d5f182e
ci: re-trigger CI
CN-TangLin May 29, 2026
0e8fc3e
feat(ebpf): decouple JIT compiler and migrate eBPF user tests to apps
CN-TangLin May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 76 additions & 64 deletions Cargo.lock

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions apps/starry/ebpf/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Starry eBPF Programs

These programs are comprehensive eBPF test applications migrated from the original Starry `user/musl` directory. Since they are complex and require significant execution time, they are placed in `apps/starry/ebpf` rather than `test-suit` to serve as integration/application examples.

## Contents

- `ebpf-basics`: Basic eBPF instruction tests
- `ebpf-advanced`: Advanced eBPF instruction tests (ALU32, JMP32, etc.)
- `ebpf-attach`: eBPF attach and perf_event_open tests

## Build and Run

These programs can be built as part of the rootfs and run interactively or via an app script to comprehensively test the eBPF subsystem.
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
add_executable(test-ebpf-advanced src/main.c)
target_compile_options(test-ebpf-advanced PRIVATE -Wall -Wextra -Werror)
install(TARGETS test-ebpf-advanced RUNTIME DESTINATION usr/bin/starry-test-suit)
install(TARGETS test-ebpf-advanced RUNTIME DESTINATION usr/bin)
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
add_executable(test-ebpf-attach src/main.c)
target_compile_options(test-ebpf-attach PRIVATE -Wall -Wextra -Werror)
install(TARGETS test-ebpf-attach RUNTIME DESTINATION usr/bin/starry-test-suit)
install(TARGETS test-ebpf-attach RUNTIME DESTINATION usr/bin)
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ set(CMAKE_C_EXTENSIONS OFF)
add_executable(test-ebpf-basics src/main.c)
target_include_directories(test-ebpf-basics PRIVATE src)
target_compile_options(test-ebpf-basics PRIVATE -Wall -Wextra -Werror)
install(TARGETS test-ebpf-basics RUNTIME DESTINATION usr/bin/starry-test-suit)
install(TARGETS test-ebpf-basics RUNTIME DESTINATION usr/bin)
3 changes: 2 additions & 1 deletion os/StarryOS/kernel/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ default = ["dynamic_debug", "ebpf"]
dev-log = []
ext4 = ["ax-fs/ext4"]
input = ["dep:ax-input", "ax-feat/input"]
ebpf = []
ebpf = ["dep:rbpf"]
memtrack = ["ax-feat/dwarf", "ax-alloc/tracking", "dep:gimli"]
rknpu = ["dep:ax-driver", "ax-driver/rknpu"]
plat-dyn = [
Expand Down Expand Up @@ -70,6 +70,7 @@ axplat-dyn = { workspace = true, optional = true }
ax-runtime.workspace = true
ax-sync.workspace = true
ax-task.workspace = true
rbpf = { git = "https://github.com/CN-TangLin/rbpf.git", branch = "feat/jit-multi-arch", default-features = false, optional = true }
ax-dma = { workspace = true, optional = true }
sg2002-tpu = { workspace = true, optional = true }
crab-usb = { workspace = true, optional = true }
Expand Down
Loading