X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=backend.c;h=0e454cdd1e9a4f2979320e7b913cc5f242d4b362;hb=90d06f94de5d93a54e3ada5b0bd64455ff013fd0;hp=f519728c2131f073f55869ed765118fbbeafe8b9;hpb=e1ce5b385c65803b170e512a1b5256bbe99f98f0;p=fio.git diff --git a/backend.c b/backend.c index f519728c..0e454cdd 100644 --- a/backend.c +++ b/backend.c @@ -66,7 +66,11 @@ unsigned int stat_number = 0; int shm_id = 0; int temp_stall_ts; unsigned long done_secs = 0; +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +pthread_mutex_t overlap_check = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; +#else pthread_mutex_t overlap_check = PTHREAD_MUTEX_INITIALIZER; +#endif #define JOB_START_TIMEOUT (5 * 1000) @@ -1006,12 +1010,6 @@ static void do_io(struct thread_data *td, uint64_t *bytes_done) if (td->o.verify != VERIFY_NONE && io_u->ddir == DDIR_READ && ((io_u->flags & IO_U_F_VER_LIST) || !td_rw(td))) { - if (!td->o.verify_pattern_bytes) { - io_u->rand_seed = __rand(&td->verify_state); - if (sizeof(int) != sizeof(long *)) - io_u->rand_seed *= __rand(&td->verify_state); - } - if (verify_state_should_stop(td, io_u)) { put_io_u(td, io_u); break; @@ -1541,7 +1539,7 @@ static void *thread_main(void *data) uint64_t bytes_done[DDIR_RWDIR_CNT]; int deadlock_loop_cnt; bool clear_state; - int ret; + int res, ret; sk_out_assign(sk_out); free(fd); @@ -1866,11 +1864,15 @@ static void *thread_main(void *data) * offload mode so that we don't clean up this job while * another thread is checking its io_u's for overlap */ - if (td_offload_overlap(td)) - pthread_mutex_lock(&overlap_check); + if (td_offload_overlap(td)) { + int res = pthread_mutex_lock(&overlap_check); + assert(res == 0); + } td_set_runstate(td, TD_FINISHING); - if (td_offload_overlap(td)) - pthread_mutex_unlock(&overlap_check); + if (td_offload_overlap(td)) { + res = pthread_mutex_unlock(&overlap_check); + assert(res == 0); + } update_rusage_stat(td); td->ts.total_run_time = mtime_since_now(&td->epoch);