Add debug helper stub for t/ programs
[fio.git] / gettime.c
index c6d45f8761f799e9e324b2f95f9b4bff40a56158..8a1392392ab2ff3c92b8698c59fe79ea7cdd9adc 100644 (file)
--- a/gettime.c
+++ b/gettime.c
@@ -534,16 +534,20 @@ int fio_monotonic_clocktest(void)
        struct clock_thread *threads;
        unsigned int nr_cpus = cpus_online();
        struct clock_entry *entries;
-       unsigned long tentries, failed;
+       unsigned long tentries, failed = 0;
        struct clock_entry *prev, *this;
        uint32_t seq = 0;
-       int i;
+       unsigned int i;
 
        log_info("cs: reliable_tsc: %s\n", tsc_reliable ? "yes" : "no");
 
+#ifdef FIO_INC_DEBUG
        fio_debug |= 1U << FD_TIME;
+#endif
        calibrate_cpu_clock();
+#ifdef FIO_INC_DEBUG
        fio_debug &= ~(1U << FD_TIME);
+#endif
 
        threads = malloc(nr_cpus * sizeof(struct clock_thread));
        tentries = CLOCK_ENTRIES * nr_cpus;
@@ -560,7 +564,11 @@ int fio_monotonic_clocktest(void)
                pthread_mutex_init(&t->lock, NULL);
                pthread_mutex_init(&t->started, NULL);
                pthread_mutex_lock(&t->lock);
-               pthread_create(&t->thread, NULL, clock_thread_fn, t);
+               if (pthread_create(&t->thread, NULL, clock_thread_fn, t)) {
+                       failed++;
+                       nr_cpus = i;
+                       break;
+               }
        }
 
        for (i = 0; i < nr_cpus; i++) {
@@ -575,7 +583,7 @@ int fio_monotonic_clocktest(void)
                pthread_mutex_unlock(&t->lock);
        }
 
-       for (failed = i = 0; i < nr_cpus; i++) {
+       for (i = 0; i < nr_cpus; i++) {
                struct clock_thread *t = &threads[i];
                void *ret;