I decided to profile a UML that was running a 'make -j' kernel build. I gave
it a couple of hours of good solid thrasing before regaining control of it
and shutting it down.
It was configured with 128M of memory and 1G of swap. Previous runs with
vmstat running showed it going 200M - 300M into swap.
The full gprof output is linked from the UML diary -
There is also some commentary on the results in today's entry. Basically,
UML's low-level VM stuff seems to be causing the greatest performance hit.
The kernel memory protection and the address space updating are at the top
of the list.
After that, you start seeing other UML bookkeeping and the generic kernel's
The constant switching between the tracing thread and other threads doesn't
seem to show up, unless that's why wait4 is near the top of the list.