X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=memory.c;h=c147229e27c67d4135bfe9c64be82f8dbe8e2c46;hp=a95edd780bafdf2a97f44cc927034aa068581a26;hb=4241ea8fb0606f9bd5b7ed1278d3b7825883acf6;hpb=d8602dd08170e11fb91dccde945bc527dbba57aa diff --git a/memory.c b/memory.c index a95edd78..c147229e 100644 --- a/memory.c +++ b/memory.c @@ -65,11 +65,13 @@ static int alloc_mem_shm(struct thread_data *td) td_verror(td, errno, "shmget"); if (geteuid() != 0 && errno == ENOMEM) log_err("fio: you may need to run this job as root\n"); - if (td->o.mem_type == MEM_SHMHUM) { + if (td->o.mem_type == MEM_SHMHUGE) { if (errno == EINVAL) 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;