mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 10:45:50 +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