ULE vs 4BSD in RELENG_7
Bruce Evans
brde at optusnet.com.au
Mon Nov 5 07:00:13 PST 2007
On Sun, 4 Nov 2007, Jeff Roberson wrote:
> On Sun, 4 Nov 2007, Gelsema, P (Patrick) - FreeBSD wrote:
>> w/o patch
>> hulk# time make -j8 buildkernel
>> 837.808u 138.167s 10:28.96 155.1% 6349+1349k 2873+7780io 303pf+0w
>>
>> w patch
>> hulk# time make -j8 buildkernel
>> 838.554u 168.316s 10:52.10 154.4% 6263+1332k 6489+7791io 11pf+0w
>>
>> I only understand the 10:52 seconds thing, but it looks like it's
>> stressing less and still getting things done.
>
> Well this doesn't look very good at all. System time increased by 30
> seconds! Must be too many extra context switches. The minimum slice value
> is probably too small and you've got an average of 4 threads per-core.
838 seconds for a kernel build! I'm unhappy with ~32 seconds for a
kernel build on a system with 1/2 or 1/4 as much CPU here, with ULE
still taking an extra 0.5 seconds. Mine is not an equivalent kernel
build since it is for ~4.10 with ~5.2 userland (so that the benchmark
isn't affected by anything except the kernel).
4BSD:
"make depend": 8.12 real 5.09 user 1.34 sys
"make": 31.94 real 56.18 user 4.49 sys
ULE:
"make depend": 8.09 real 5.16 user 1.19 sys
"make": 32.12 real 55.72 user 4.91 sys
The kernel is about 2/3 as large as GENERIC, with no acpi and no modules.
The machine is a Turion X2 2GHz in i386 mode. The buffer cache was 100%
warm. All makes normal ones (no buildkernel or modules pessimizations)
with -j4.
Before recent vm changes, the real times were about 0.20 seconds smaller
for "make".
Building on a local file system gives real times about 2 seconds smaller
for "make".
Building a ~5.2 kernel on a local file system on this machine takes about
10 seconds longer (~42 seconds for 4BSD and ~43 seconds for ULE).
Building a ~5.2 world over nfs (with a cold cache) on this machine takes
about 825 seconds with 4BSD and 833 seconds with ULE.
-current building itself is much slower due to source bloat and gcc bloat:
For build a -current kernel with the same features on an Opteron X2 1.8GHz
in amd64 mode over an untuned nfs with an untuned (INVARIANTS) kernel:
4BSD (several months ago), gcc-3.4.6:
"make depend": 110.32 real 15.83 user 10.20 sys
"make": 86.43 real 128.17 user 19.05 sys
ULE, gcc-4.2.1:
"make depend": 83.34 real 15.39 user 8.67 sys
"make": 108.03 real 170.77 user 23.83 sys
The "make depend" times are not directly comparable. The untuned nfs is
so slow that "make -j4 depend" takes 50-100 seconds no matter how many
kernels are built in parallel, due to dead time waiting for nfs, so I
build 6 kernels in parallel ("make depend" itself is mostly serial) on
the slow machine but not normally. The "make" times are directly
comparable (they are for "make -j4" of a single kernel on 2-way SMP
systems).
Bruce
More information about the freebsd-performance
mailing list