for_each_td(td, i) {
int flags = 0;
- if (!strcmp(td->o.ioengine, "cpuio"))
+ if (!strcmp(td->o.ioengine, "cpuio"))
cputhreads++;
else
realthreads++;
strerror(ret));
} 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) {
int ret;
_exit(ret);
} else if (i == fio_debug_jobno)
*fio_debug_jobp = pid;
+ // 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;
}
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;