Files
substrate/cmd
Jeffrey Ying 7775584bbf ateom-microvm: unlink the merge destination before renaming onto it (#921)
`MergeSparseOverlay` ended with a rename onto an existing `outFile`.
Renaming over an existing file makes
[ext4](https://github.com/torvalds/linux/blob/v6.17/Documentation/admin-guide/ext4.rst#L317-L328)
(`data=ordered`) write back the renamed file's dirty pages, and the
scratch file carries the whole merged memory image, so the merge pays a
full flush of it. `MergeDeltaIntoBase` (see
[link](https://github.com/agent-substrate/substrate/blob/a4121a4ca438603481f1799c85928c78a4ba9a6a/cmd/ateom-microvm/internal/ch/merge.go#L150-L158))
already unlinks first for this reason. On the counter demo the merge
goes from ~1140 ms to ~115 ms.

This is a no-op today, `MergeSparseOverlay` only runs when base and
delta land on different filesystems. It becomes the common path in the
follow-up that routes hardlinked restores through it, and landing first
keeps that change from carrying a 1.1 s suspend regression.
2026-08-14 15:03:29 -07:00
..