X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=memory.c;h=5678350f79b2527e50f7f58bd0542fdab9e8e993;hp=efbea04c2c992ee0f6c47d4230e1197428506db4;hb=64d04e4ee255be69b491907cdba183e6b09e9164;hpb=886b878aed5decd6fdc6c61d2f11aa5b960b4f1c diff --git a/memory.c b/memory.c index efbea04c..5678350f 100644 --- a/memory.c +++ b/memory.c @@ -70,6 +70,8 @@ static int alloc_mem_shm(struct thread_data *td) log_err("fio: check that you have free huge pages and that hugepage-size is correct.\n"); else if (errno == ENOSYS) log_err("fio: your system does not appear to support huge pages.\n"); + else if (errno == ENOMEM) + log_err("fio: no huge pages available, do you need to alocate some? See HOWTO.\n"); } return 1; @@ -124,7 +126,12 @@ static int alloc_mem_mmap(struct thread_data *td) static int alloc_mem_malloc(struct thread_data *td) { - td->orig_buffer = malloc(td->orig_buffer_size); + unsigned int bsize = td->orig_buffer_size; + + if (td->o.odirect) + bsize += page_mask; + + td->orig_buffer = malloc(bsize); if (td->orig_buffer) return 0; @@ -138,6 +145,9 @@ int allocate_io_mem(struct thread_data *td) { int ret = 0; + if (td->io_ops->flags & FIO_NOIO) + return 0; + if (td->o.mem_type == MEM_MALLOC) ret = alloc_mem_malloc(td); else if (td->o.mem_type == MEM_SHM || td->o.mem_type == MEM_SHMHUGE)