Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
ff34f02
feat(nix): switch rust to nightly
luytan Jul 31, 2026
b04213d
feat: add a crate for epbf and another for userspace ebpf, this is th…
luytan Jul 31, 2026
659f370
feat(cardwire-ebpf): add lsm_open_file hook and start implementing he…
luytan Jul 31, 2026
b4430b2
feat(cardwire-ebpf): implement previous maps, document them and impro…
luytan Jul 31, 2026
dca9da6
feat(cardwire-ebpf): implement return code struct, getter functions a…
luytan Jul 31, 2026
cdf0e70
feat(cardwire-ebpf): add verifications to try_file_open, add RingBufs…
luytan Jul 31, 2026
516762e
refactor(cardwire-ebpf): replace dentry with directly the inode
luytan Jul 31, 2026
70c8b22
feat(cardwire-ebpf): add inode_permission hook
luytan Jul 31, 2026
979715a
feat(cardwire-ebpf): add inode_getattr hook
luytan Jul 31, 2026
5321dcd
feat(cardwire-ebpf): implement getdents64 and do some cleaning/refact
luytan Aug 1, 2026
a29bc43
feat: implement new lib
luytan Aug 1, 2026
a95bef8
feat: update nix compi and finish updating the lib/daemon
luytan Aug 1, 2026
02b6b80
ci: try to fix
luytan Aug 1, 2026
5ff5fd4
chore: fix clippy warnings
luytan Aug 1, 2026
3bccb12
ci: fix maybe
luytan Aug 1, 2026
5e570cd
feat(cardwire-ebpf): add exec events, todo test on laptop
luytan Aug 1, 2026
85b6acd
feat(cardwire-ebpf): implement actual smart mode and force gpu
luytan Aug 1, 2026
0e895e4
chore(cardwire-ebpf): remove unused import
luytan Aug 1, 2026
8405216
feat: make smart mode works
luytan Aug 1, 2026
202db4a
fix: nvdia dGPU to be allowed on smart mode
luytan Aug 1, 2026
f4085f7
packaging: update arch for aya-ebpf
luytan Aug 1, 2026
c7962f1
chore: update Cargo.lock
luytan Aug 2, 2026
bb2a677
ci: pin taiki-e action
luytan Aug 2, 2026
0e90db5
feat(cardwired): use gpu_id as values inside the BPF maps
luytan Aug 2, 2026
2f1e0e6
docs: update block_inode comment
luytan Aug 2, 2026
9fb34d4
fix: add gpu_id to is_inode_blocked
luytan Aug 2, 2026
85149c2
fix(cardwired): remove unused comm from report event
luytan Aug 2, 2026
8efca67
refactor(cardwire-ebpf): use reference for hashmap key
luytan Aug 2, 2026
201967f
refactor(cardwire-ebpf): use an helper function to send report events
luytan Aug 2, 2026
7a43492
fix(cardwired): use gpu id when re-applying block in debug interface
luytan Aug 2, 2026
1cfa1f1
fix(cardwire-ebpf): wrong program name missing_lsm
luytan Aug 2, 2026
3b3c75e
refactor(cardwire-ebpf): improve error handling and add the logger
luytan Aug 2, 2026
f72627a
feat: log ebpf error
luytan Aug 2, 2026
01b1a23
feat: add pid_whitelisted and clean some maps
luytan Aug 2, 2026
c4991ad
chore: remove fish
luytan Aug 2, 2026
4b6ad2b
fix: various issues
luytan Aug 2, 2026
930a6f2
ci: fix release
luytan Aug 2, 2026
dc34a87
fix: arch packaging
luytan Aug 2, 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
54 changes: 28 additions & 26 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ jobs:
runs-on: ubuntu-latest
outputs:
run_nix_vm: ${{ steps.files.outputs.run_nix_vm }}
run_c_checks: ${{ steps.files.outputs.run_c_checks }}
run_rust_checks: ${{ steps.files.outputs.run_rust_checks }}
run_mdbook_check: ${{ steps.files.outputs.run_mdbook_check }}
steps:
Expand All @@ -29,31 +28,25 @@ jobs:

const needsVMTest = !isDraft && files.some(file =>
file.endsWith('.rs') ||
file.endsWith('.c') ||
file.includes('.nix') ||
file.includes('flake.lock') ||
file.includes('Cargo.toml') ||
file.includes('Cargo.lock')
);

const needsCFormatCheck = files.some(file =>
file.endsWith('.c')
);

const needsMdBookCheck = files.some(file =>
file.startsWith('docs/')
);

const needsRustQuality = files.some(file =>
file.endsWith('.rs')
file.endsWith('.rs') ||
file.includes('Cargo.toml') ||
file.includes('Cargo.lock')
);

if (needsVMTest) {
core.setOutput('run_nix_vm', 'true');
}
if (needsCFormatCheck) {
core.setOutput('run_c_checks', 'true');
}
if (needsRustQuality) {
core.setOutput('run_rust_checks', 'true');
}
Expand All @@ -74,13 +67,23 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y clang libbpf-dev libudev-dev pkg-config gcc-multilib
- uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0
- name: Install Nightly Rust (for aya-ebpf)
uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- name: Install Stable Rust
uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0
with:
components: clippy
- uses: auguwu/clippy-action@9817d076b82df0194935be9db6154c56ac07b317 # 1.5.0
- name: Install bpf-linker
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: bpf-linker
Comment thread
luytan marked this conversation as resolved.
- name: Clippy Workspace
uses: auguwu/clippy-action@9817d076b82df0194935be9db6154c56ac07b317 # 1.5.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
check-args: --locked --all-targets --all-features
check-args: --all-targets --all-features
args: -D warnings
Comment thread
luytan marked this conversation as resolved.
rust-test:
name: Rust Test
Expand All @@ -93,9 +96,18 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y clang libbpf-dev libudev-dev pkg-config gcc-multilib
- uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff
- name: Install Nightly Rust (for aya-ebpf)
uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
- name: Install Stable Rust
uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0
- name: Install bpf-linker
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: bpf-linker
- name: Test code
run: cargo test --all
run: cargo test
rust-format:
name: Rust Format
runs-on: ubuntu-latest
Expand All @@ -115,19 +127,9 @@ jobs:
uses: reviewdog/action-suggester@2558ba17e65a9039e73764a73009fc05fef28a46 # v1.24.3
with:
tool_name: rustfmt
c-format:
name: C Format
runs-on: ubuntu-latest
needs: [prepare]
if: needs.prepare.outputs.run_c_checks == 'true'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install clang-format
run: sudo apt-get update && sudo apt-get install -y clang-format
- run: clang-format --dry-run --Werror -i ./crates/cardwire-ebpf/src/c/*
vm-test:
runs-on: ubuntu-latest
needs: [prepare, rust-lint, rust-format, c-format]
needs: [prepare, rust-lint, rust-test, rust-format]
if: ${{ !failure() && !cancelled() && needs.prepare.outputs.run_nix_vm == 'true' }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,18 @@ jobs:
sudo ln -s /usr/include/aarch64-linux-gnu/asm /usr/include/asm


- uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0
- name: Install Nightly Rust (for aya-ebpf)
uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src

- name: Install Stable Rust
uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0

- name: Install bpf-linker
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: bpf-linker
- name: Build cardwire
run: |
cargo install cargo-deb
Expand Down
Loading