Better xz compression
Borrowed from downstream, we can be a little bit smarter on how we compress modules.
This commit is contained in:
		
							parent
							
								
									d0a82f1e0f
								
							
						
					
					
						commit
						dba7671694
					
				| @ -51,8 +51,6 @@ Summary: The Linux kernel | ||||
| 
 | ||||
| %if %{zipmodules} | ||||
| %global zipsed -e 's/\.ko$/\.ko.xz/' | ||||
| # for parallel xz processes, replace with 1 to go back to single process | ||||
| %global zcpu `nproc --all` | ||||
| %endif | ||||
| 
 | ||||
| # define buildid .local | ||||
| @ -2070,7 +2068,7 @@ find Documentation -type d | xargs chmod u+w | ||||
|     fi \ | ||||
|   fi \ | ||||
|   if [ "%{zipmodules}" -eq "1" ]; then \ | ||||
|     find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | xargs -P%{zcpu} xz; \ | ||||
|     find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | %{SOURCE79} %{?_smp_mflags}; \ | ||||
|   fi \ | ||||
| %{nil} | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										26
									
								
								parallel_xz.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										26
									
								
								parallel_xz.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #!/bin/sh | ||||
| # Reads filenames on stdin, xz-compresses each in place. | ||||
| # Not optimal for "compress relatively few, large files" scenario! | ||||
| 
 | ||||
| # How many xz's to run in parallel: | ||||
| procgroup="" | ||||
| while test "$#" != 0; do | ||||
| 	# Get it from -jNUM | ||||
| 	N="${1#-j}" | ||||
| 	if test "$N" = "$1"; then | ||||
| 		# Not -j<something> - warn and ignore | ||||
| 		echo "parallel_xz: warning: unrecognized argument: '$1'" | ||||
| 	else | ||||
| 		procgroup="$N" | ||||
| 	fi | ||||
| 	shift | ||||
| done | ||||
| 
 | ||||
| # If told to use only one cpu: | ||||
| test "$procgroup" || exec xargs -r xz | ||||
| test "$procgroup" = 1 && exec xargs -r xz | ||||
| 
 | ||||
| # xz has some startup cost. If files are really small, | ||||
| # this cost might be significant. To combat this, | ||||
| # process several files (in sequence) by each xz process via -n 16: | ||||
| exec xargs -r -n 16 -P $procgroup xz | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user