I've been playing with creating SMP guests on a UMP host with mixed
success. Some of the kernels I have tried won't build as SMP and others show
extremely poor performance. The "benchmark" I've been running is just a
simple loop that from 1-500 computes a series of exponentiations, so 1^1,
2^2, 3^3, etc. It's just meant to give an idea of how well the UML is
"performing" with respect to UML kernel version. The following is a summary
of my experiences:
UML-kernel-ver TYPE Bench Notes
2.4.19-5 UMP --- kernel build fails with
undefined reference to `module_list'
2.4.19-51 UMP 187.2s
2.4.19-51 SMP 552.6s
2.4.20-6 UMP 79s works great.
2.4.20-6 SMP 144.7s shutdown -h now dies with "INIT: no
more processes in this runlevel"
2.4.22-5 UMP --- kernel build fails: Note 1
2.4.22-5 SMP --- kernel build fails: Note 1
2.4.22-6 UMP 83s console flooded with
"write_debugregs - ptrace failed on register 5, errno = 280"
2.4.22-6 SMP --- kernel build fails: Note 1
That's a pretty big spread in SMP performance! I'd just stick with
2.4.20-6, but the weird INIT fail during shutdown could be a problem. So, I
am curious to know which kernel other people are using who might also be on
a RH9 host with SMP enabled in the guest? Also interested in knowing what
I'm doing wrong with the 2.4.22 kernel builds...
Notes: All SMP tests were conducted with ncpus=2. The host system is
RedHat 9 (which is why 2.4.19-5 doesn't build if I remember correctly). The
guest OS is RedHat 8.
Note 1: It seems like I'm missing a header or maybe have the wrong
version? - most recent UML kernels fail to build with something similar to
the following error:
gcc -Wl,-T,arch/um/link.ld -static -Wl,--wrap,malloc -Wl,--wrap,free
-o linux arch/um/main.o vmlinux.o -L/usr/lib -lutil
vmlinux.o(.text+0x2309b): In function `zap_page_range':
reference to `mmu_gathers'
eric/tlb.h:44: undefined reference to `mmu_gathers'