I discovered another interesting feature in my tests:

If 'fork' exceeds nproc value, kernel panics.
If 'fork' reaches the available memory limit, it is blocked until some memory is released (e.g. by the finish of some process).

Pavel



2014/1/10 erik quanstrom <quanstro@quanstro.net>
> launching 32000 processes was not possible.  the kernel got stuck.

sloppy statement.  it's not clear if the kernel was really stuck or just
hit something exponential.

> here's one thing that's not immediately obvious, even when running the
> kernel.  conv.nmach must be less than 0x7fffffff/(1000*1000) = 2147
> to prevent reprioritize from doing silly things:
>
>       /*
>        *  fairshare = 1.000 * conf.nproc * 1.000/load,
>        * except the decimal point is moved three places
>        * on both load and fairshare.
>        */
>       fairshare = (conf.nmach*1000*1000)/load;

and, look.  the comment's wrong.  never read the comments!

- erik