Subject: Re: New kinetic figures
To: Chris Gilbert <chris@paradox.demon.co.uk>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm32
Date: 02/08/2001 10:48:25
chris@paradox.demon.co.uk said:
> Don't know, configure scripts have always been really bad on arm
> platform,  it's all the fast forking and exiting of the test
> processes.  I might try  shifting it onto a local disk as you suggest,
> but I don't expect a huge gain. 

At least four cache flushes for each process that runs (assuming that the 
process is never suspended in favour of another one).

1 when the process is first activated.
3 when it dies.

It's the final three that are the real killer, but it's due to the way 
that uvm removes dead processes and the current implementation of the pmap 
code for supporting that.  A good test of forking capability is something 
like

#include <sys/types.h>
#include <unistd.h>

main()
{
  int i;

  for (i = 0; i < 1000; i++)
  {
    if (fork() == 0)
      exit(0);
    wait (0);
  }
}

which takes

Linux(x86/700MHz)		real 0.3  user 0.02 sys 0.27

Solaris(ultra5/360MHz) 		real 3.1  user 0.3  sys 2.3

Shark/NetBSD(SA110/233MHz)  	real 9.2  user 0.02 sys 1.9

Personally, I think this sys figure for the Shark is bogus -- it should be 
much much closer to the real time...