mirror of
https://github.com/Xahau/xahaud.git
synced 2026-04-29 15:37:46 +00:00
feat: enable metacopy=on to test metadata-only copy-up
Mount OverlayFS with metacopy=on option (kernel 4.2+, supported on ubuntu-22.04). This prevents full file copy-up when files are opened with O_RDWR but not modified. Expected behavior: - ccache opens cache files with write access - OverlayFS creates metadata-only entry in upper layer - Full copy-up only happens if data is actually written - Should dramatically reduce delta sizes from ~324 MB to ~KB Re-enabled use-deltas for ccache to test this optimization. Conan remains base-only (hash-based keys mean exact match most of the time). If successful, deltas should be tiny for cache hit scenarios.
This commit is contained in:
@@ -274,11 +274,12 @@ runs:
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Mount OverlayFS
|
||||
# Mount OverlayFS with metacopy=on to prevent copy-up for files opened-but-not-written
|
||||
# This dramatically reduces delta sizes when ccache opens files with O_RDWR but doesn't modify content
|
||||
echo ""
|
||||
echo "Mounting OverlayFS..."
|
||||
echo "Mounting OverlayFS with metacopy=on..."
|
||||
sudo mount -t overlay overlay \
|
||||
-o lowerdir="${CACHE_WORKSPACE}/base",upperdir="${CACHE_WORKSPACE}/upper",workdir="${CACHE_WORKSPACE}/work" \
|
||||
-o lowerdir="${CACHE_WORKSPACE}/base",upperdir="${CACHE_WORKSPACE}/upper",workdir="${CACHE_WORKSPACE}/work",metacopy=on \
|
||||
"${CACHE_WORKSPACE}/merged"
|
||||
|
||||
# Verify mount
|
||||
|
||||
4
.github/actions/xahau-ga-build/action.yml
vendored
4
.github/actions/xahau-ga-build/action.yml
vendored
@@ -76,7 +76,7 @@ runs:
|
||||
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.configuration }}-${{ inputs.main_branch }}
|
||||
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.configuration }}-
|
||||
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-
|
||||
use-deltas: 'false' # Disabled: OverlayFS file-level deltas incompatible with ccache's byte-level LRU updates
|
||||
use-deltas: 'true' # Testing: metacopy=on should prevent copy-up for files opened-but-not-written
|
||||
aws-access-key-id: ${{ inputs.aws-access-key-id }}
|
||||
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
|
||||
|
||||
@@ -194,6 +194,6 @@ runs:
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.configuration }}-${{ steps.safe-branch.outputs.name }}
|
||||
use-deltas: 'false' # Disabled: OverlayFS file-level deltas incompatible with ccache's byte-level LRU updates
|
||||
use-deltas: 'true' # Testing: metacopy=on should prevent copy-up for files opened-but-not-written
|
||||
aws-access-key-id: ${{ inputs.aws-access-key-id }}
|
||||
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
|
||||
|
||||
Reference in New Issue
Block a user