X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=backend.c;h=e5bb4e259034b29af86fbaed018ae64c7bb288db;hb=855dc4d44e000b68c01b0e33eae3389b49eb7f7f;hp=001b2b96477465f683fa6fbafc83231799de515c;hpb=2c8d6dcdeb8d6643c70cb6b929db1029334e521b;p=fio.git diff --git a/backend.c b/backend.c index 001b2b96..e5bb4e25 100644 --- a/backend.c +++ b/backend.c @@ -2021,7 +2021,7 @@ static void reap_threads(unsigned int *nr_running, uint64_t *t_rate, for_each_td(td, i) { int flags = 0; - if (!strcmp(td->o.ioengine, "cpuio")) + if (!strcmp(td->o.ioengine, "cpuio")) cputhreads++; else realthreads++; @@ -2433,8 +2433,10 @@ reap: } else { pid_t pid; struct fio_file **files; + void *eo; dprint(FD_PROCESS, "will fork\n"); files = td->files; + eo = td->eo; read_barrier(); pid = fork(); if (!pid) { @@ -2447,6 +2449,7 @@ reap: // freeing previously allocated memory for files // this memory freed MUST NOT be shared between processes, only the pointer itself may be shared within TD free(files); + free(eo); free(fd); fd = NULL; } @@ -2567,6 +2570,11 @@ int fio_backend(struct sk_out *sk_out) setup_log(&agg_io_log[DDIR_TRIM], &p, "agg-trim_bw.log"); } + if (init_global_dedupe_working_set_seeds()) { + log_err("fio: failed to initialize global dedupe working set\n"); + return 1; + } + startup_sem = fio_sem_init(FIO_SEM_LOCKED); if (!sk_out) is_local_backend = true;