|
From: Stuart M. <stu...@st...> - 2002-06-18 19:06:34
|
Folks As you may have spotted from a previous posting I've been playing with compressed kernels, with the aim of improving the download speed. After a number of unexpected problems, it is now working fine, so I thought I might post some figures. First some background. The Linux compressed kernels work by taking the normal ELF kernel image, removing some sections (primarily empty zero page, and those to do with debugging), and the compressing the resulting file using gzip. This is then built as binary data into a new program, which when booted decompresses the kernel image, and jumps into it. So after benchmarking this, we get the following results (figures are approx. - stopwatch and visual inspection - so don't extrapolate too far!): gdb from BSF 20020329 --------------------- Compressed kernel (size 632K, 616K data + 16K loader) download 90 seconds = 7K/sec decompress 15 seconds total 105 seconds = 16K/sec Uncompressed kernel (size 1702K) download 103 seconds = 16K/sec gdb from Madrid 0.6 ------------------- Compressed kernel (size 664K, 648K data + 16K loader) download 17 seconds = 39K/sec decompress 2 seconds total 19 seconds = 94K/sec Uncompressed kernel (size 1789K) download 44 seconds = 40K/sec Note that this is not a fair comparison, because as well as changing the version of gdb being used, I also changed the decompression code to enable the cache, hence the big fall in decompression time. This testing did turn up one anomily. The download speed is very dependant on the alignment of the data being downloaded. If it is 8 byte aligned speeds are in the order of 40K/sec, while 4 byte aligned data falls to under 9K/sec. This is almost certainly a result of how the debug hardware is being driven, so needs looking at, I'll check this in later this week. Stuart -- Stuart Menefy stu...@st... STMicroelectronics Ltd ST Intranet: mo.bri.st.com Bristol, UK Rest of the World: www.linuxsh.st.com |