Skip to content

actiondfs: simplify cached directories, inode ownership, and backing files - #26

Merged
dzbarsky merged 25 commits into
mainfrom
codex/actiondfs-deslop-round-five
Aug 1, 2026
Merged

actiondfs: simplify cached directories, inode ownership, and backing files#26
dzbarsky merged 25 commits into
mainfrom
codex/actiondfs-deslop-round-five

Conversation

@dzbarsky

@dzbarsky dzbarsky commented Aug 1, 2026

Copy link
Copy Markdown
Member

Continue #25 with 25 separately reviewable actiondfs cleanups. Derive inode and merged-directory state from cached children, use RCU for immutable directory-cache hits, search only cached input directories, borrow backing dentries and staged copy files, transfer root-node ownership to root inodes, reduce each superblock allocation from 128 to 96 bytes, allocate unhashed roots directly, publish staged backing dentries before inode insertion, initialize locks only for loadable inputs, and remove unnecessary ancestor zeroing, repeated inode classification, blob checks, synthetic symlink digests, protobuf copies, cache cleanup branches, and released-file state resets.

Validation: all 66 supported Bazel targets, both repository test suites, the standalone timing-parser test, production and instrumented Virtualization.framework VM end-to-end tests, and two fresh llvm-tblgen VM smoke runs with identical 2,106 remote actions (88.494s and 86.002s; previous run 74.995s). Warmups ranged from 63.992s to 83.160s, indicating host contention; compare matched Linux and Windows CI actiond/native results for performance changes. e2e/LLVM_VM_SMOKE_TIMINGS.md contains the exact counters and both measurements.

dzbarsky added 25 commits August 1, 2026 08:10
@dzbarsky
dzbarsky merged commit d9c8016 into main Aug 1, 2026
5 checks passed
dzbarsky added a commit that referenced this pull request Aug 1, 2026
Continue merged #26 with 30 separately reviewable actiondfs commits.

Prevent unprivileged staged operations from triggering the Linux
notify_change BUG on privilege removal; serialize staged writes and
copy_file_range, preserve and correctly clear setuid/setgid bits, honor
backing mount idmaps, reject malformed protobuf keys, and sanitize
forwarded ATTR_OPEN. Simplify staged dentry publication, inode
classification and ownership, CAS and staged path references,
cached-child allocation, generation locking, and protobuf fixed-width
decoding. The actiondfs implementation removes 28 net lines and adds
focused VM regressions for non-root privileged-file creation,
truncation, copy_file_range, and O_TRUNC.

Validation: all 66 supported cross-architecture Bazel build targets and
repository tests; standalone timing-parser test; production and
instrumented macOS Virtualization.framework VM suites; fresh LLVM VM
smoke with 2,017 warmup and 2,106 measured actions; all five GitHub
Actions checks passed. Matched 1,998-action CI benchmarks: Linux actiond
304.743s / native 313.029s = 0.974x versus main 1.055x; Windows actiond
348.083s / native 373.566s = 0.932x versus main 1.005x. Both VM timing
reports are refreshed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant