Add softrandommap and --alloc-size options
[fio.git] / filesetup.c
index 4774d84213b37038ffc8284275fe3543787e7e80..b356b447ddaeadffa01f4d551ea868621cff3220 100644 (file)
@@ -575,13 +575,21 @@ int init_random_map(struct thread_data *td)
                num_maps = (blocks + BLOCKS_PER_MAP - 1) /
                                (unsigned long long) BLOCKS_PER_MAP;
                f->file_map = smalloc(num_maps * sizeof(long));
-               if (!f->file_map) {
+               if (f->file_map) {
+                       f->num_maps = num_maps;
+                       continue;
+               }
+               if (!td->o.softrandommap) {
                        log_err("fio: failed allocating random map. If running"
                                " a large number of jobs, try the 'norandommap'"
-                               " option\n");
+                               " option or set 'softrandommap'. Or give"
+                               " a larger --alloc-size to fio.\n");
                        return 1;
                }
-               f->num_maps = num_maps;
+
+               log_info("fio: file %s failed allocating random map. Running "
+                        "job without.\n", f->file_name);
+               f->num_maps = 0;
        }
 
        return 0;