The create processes workload is a very simple micro-benchmark as part of the osbench suite. The description is quite literally:

Create 100 processes and wait for them to finish. Each process does nothing (just exit).

The main body of the loop creates 100 processes and waits for them to finish. It repeats the following as often as it can in 5 seconds and picks the best time.

    // Create all the processes.
    for (int i = 0; i < NUM_PROCESSES; ++i) {
      pid_t pid = fork();
      if (pid == 0) {
      } else if (pid > 0) {
        processes[i] = pid;
      } else {
        fprintf(stderr, "*** Unable to create process no. %d\n", i);

    // Wait for all child processes to terminate.
    for (int i = 0; i < NUM_PROCESSES; ++i) {
      waitpid(processes[i], (int*)0, 0);

    double dt = get_time() - t0;
    if (dt < best_time) {
      best_time = dt;

This benchmark often fails to run on my i7-4770 reference system. The problem is that the fork() fails with an errno 11 EAGAIN, (resource temporarily unavailable). So we can launch all these processes quickly, but the kernel lets the system call fail often enough that the benchmark as a whole fails to run.

There seems to be an Ubuntu bug reporting a similar issue.