X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.c;h=f0665e072ccbd5f6ac3f4dcd52a5edfe015cbf31;hp=ff77c91bb77f8968b4cf0807635b53256c504e0f;hb=0fe2187702d5d65e2b0f47e23824f41572eb4446;hpb=1ca957384a2050e426f8f6ef8a3e493d7ceeb9ce diff --git a/fio.c b/fio.c index ff77c91b..f0665e07 100644 --- a/fio.c +++ b/fio.c @@ -733,7 +733,7 @@ static int init_io_u(struct thread_data *td) { struct io_u *io_u; unsigned int max_bs; - int i, max_units; + int cl_align, i, max_units; char *p; max_units = td->o.iodepth; @@ -761,10 +761,20 @@ static int init_io_u(struct thread_data *td) else p = td->orig_buffer; + cl_align = os_cache_line_size(); + for (i = 0; i < max_units; i++) { + void *ptr; + if (td->terminate) return 1; - io_u = malloc(sizeof(*io_u)); + + if (posix_memalign(&ptr, cl_align, sizeof(*io_u))) { + log_err("fio: posix_memalign=%s\n", strerror(errno)); + break; + } + + io_u = ptr; memset(io_u, 0, sizeof(*io_u)); INIT_FLIST_HEAD(&io_u->list);