From "Comment bridged from LTC Bugzilla" in a bug discussion:
"FWIW, I verified this on z14, and there clearly lz4 is (as expected) the fastest decompression algorithm.
With vanilla 5.3-rc6 and defconfig I get the following kernel uncompression times:
lzo: 27us
lz4: 24us
An initrd (uncompressed size ~55MB) gets these uncompression times:
lzo: 62us
lz4: 49us
So I'd clearly vote to switch to lz4 on s390 as well."
Also:
"I also instrumented the kernel code to only measure the time to decompress the kernel. If its stckf or stcke doesn't matter in this case.
Note that if you shift a tod clock value 12 bits to the right will give you microseconds. (All numbers I posted were actually milliseconds not microseconds by the way).
I measured both runs (z13 + z14) when running within z/VM and IPL'ed from the punch card reader.
Times used for decompressing the initrd were just extracted from dmesg; no kernel instrumentation required here, since there are two messages provided before and after initrd decompression.
Find below an extract of the patch to measure decompression time.
From "Comment bridged from LTC Bugzilla" in a bug discussion:
"FWIW, I verified this on z14, and there clearly lz4 is (as expected) the fastest decompression algorithm.
With vanilla 5.3-rc6 and defconfig I get the following kernel uncompression times:
lzo: 27us
lz4: 24us
An initrd (uncompressed size ~55MB) gets these uncompression times:
lzo: 62us
lz4: 49us
So I'd clearly vote to switch to lz4 on s390 as well."
Also:
"I also instrumented the kernel code to only measure the time to decompress the kernel. If its stckf or stcke doesn't matter in this case.
Note that if you shift a tod clock value 12 bits to the right will give you microseconds. (All numbers I posted were actually milliseconds not microseconds by the way).
I measured both runs (z13 + z14) when running within z/VM and IPL'ed from the punch card reader.
Times used for decompressing the initrd were just extracted from dmesg; no kernel instrumentation required here, since there are two messages provided before and after initrd decompression.
Find below an extract of the patch to measure decompression time.
diff --git a/arch/ s390/boot/ startup. c b/arch/ s390/boot/ startup. c s390/boot/ startup. c s390/boot/ startup. c kernel( void)
index 7b0d054..cee3d97 100644
--- a/arch/
+++ b/arch/
@@ -146,7 +146,10 @@ void startup_
}
if (!IS_ENABLED( CONFIG_ KERNEL_ UNCOMPRESSED) ) { kernel( ); default_ lma, img, vmlinux. image_size) ; default_ lma, img, vmlinux. image_size) ;
+ start = get_tod_clock();
img = decompress_
+ end = get_tod_clock();
+ time = (end - start) >> 12;
memmove((void *)vmlinux.
} else if (__kaslr_offset)
memcpy((void *)vmlinux.
..."