On Thu, Oct 07, 2021 at 05:47:31PM +0300, Andy Shevchenko wrote: > On Thu, Oct 07, 2021 at 03:59:08PM +0200, Greg Kroah-Hartman wrote: > > On Thu, Oct 07, 2021 at 02:51:15PM +0300, Andy Shevchenko wrote: > > > On Thu, Oct 7, 2021 at 1:34 PM Greg Kroah-Hartman > > > <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > ... > > > > Meanwhile, Thorsten, can you have a look at my approach and tell if it > > > makes sense? > > > > No, do not use ccache when trying to benchmark the speed of kernel > > builds, that tests the speed of your disk subsystem... > > First rule of the measurement is to be sure WHAT we are measuring. > And I'm pretty much explained WHAT and HOW. On the other hand, the > kcbench can't answer to the question about C preprocessing speed > without help of ccache or something similar. > > Measuring complete build is exactly not what we want because of > O(compilation) vs. o(C preprocessing) meaning that any fluctuation > in the former makes silly to measure anything from the latter. > > You see, my theory is proved by practical experiment: > > $ kcbench -i 3 -j 64 -o $O -s $PWD --no-download -m > Processor: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz [88 CPUs] > Cpufreq; Memory: powersave [intel_pstate]; 128823 MiB > Linux running: 5.6.0-2-amd64 [x86_64] > Compiler: gcc (Debian 10.3.0-11) 10.3.0 > Linux compiled: 5.15.0-rc4 > Config; Environment: allmodconfig; CCACHE_DISABLE="1" > Build command: make vmlinux modules > Filling caches: This might take a while... Done > Run 1 (-j 64): 464.07 seconds / 7.76 kernels/hour [P:6001%] > Run 2 (-j 64): 464.64 seconds / 7.75 kernels/hour [P:6000%] > Run 3 (-j 64): 486.41 seconds / 7.40 kernels/hour [P:5727%] > > $ kcbench -i 3 -j 64 -o $O -s $PWD --no-download -m > Processor: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz [88 CPUs] > Cpufreq; Memory: powersave [intel_pstate]; 128823 MiB > Linux running: 5.6.0-2-amd64 [x86_64] > Compiler: gcc (Debian 10.3.0-11) 10.3.0 > Linux compiled: 5.15.0-rc4 > Config; Environment: allmodconfig; CCACHE_DISABLE="1" > Build command: make vmlinux modules > Filling caches: This might take a while... Done > Run 1 (-j 64): 462.32 seconds / 7.79 kernels/hour [P:6009%] > Run 2 (-j 64): 462.33 seconds / 7.79 kernels/hour [P:6006%] > Run 3 (-j 64): 465.45 seconds / 7.73 kernels/hour [P:5999%] > > In [41]: numpy.median(y1) > Out[41]: 464.64 > > In [42]: numpy.median(y2) > Out[42]: 462.33 > > Speedup: +0.5% Good, you measured what actually matters here, the real compilation of the code, not just the pre-processing of it. thanks, greg k-h