int timeout = 10;
        int cpus, tests, i, j, c;
        int sve_vl_count, sme_vl_count, fpsimd_per_cpu;
+       bool all_children_started = false;
+       int seen_children;
        int sve_vls[MAX_VLS], sme_vls[MAX_VLS];
        struct epoll_event ev;
        struct sigaction sa;
 
                /* Otherwise epoll_wait() timed out */
 
+               /*
+                * If the child processes have not produced output they
+                * aren't actually running the tests yet .
+                */
+               if (!all_children_started) {
+                       seen_children = 0;
+
+                       for (i = 0; i < num_children; i++)
+                               if (children[i].output_seen ||
+                                   children[i].exited)
+                                       seen_children++;
+
+                       if (seen_children != num_children) {
+                               ksft_print_msg("Waiting for %d children\n",
+                                              num_children - seen_children);
+                               continue;
+                       }
+
+                       all_children_started = true;
+               }
+
                for (i = 0; i < num_children; i++)
                        child_tickle(&children[i]);