X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=init.c;h=7d7c9d63f40b3c5e54d1408accda38c328e24d72;hp=badd635a394f45656fc8c027c83a5ad34cea6e6c;hb=0268b8ba7b2c79c669323cb1fcc0b045b84313f1;hpb=245142ff7554290cf666e3ef6b7b57512bf17d75 diff --git a/init.c b/init.c index badd635a..7d7c9d63 100644 --- a/init.c +++ b/init.c @@ -29,7 +29,7 @@ #define DEF_IO_ENGINE_NAME "sync" #define DEF_SEQUENTIAL (1) #define DEF_RAND_REPEAT (1) -#define DEF_OVERWRITE (1) +#define DEF_OVERWRITE (0) #define DEF_INVALIDATE (1) #define DEF_SYNCIO (0) #define DEF_RANDSEED (0xb1899bedUL) @@ -48,7 +48,7 @@ #define DEF_RWMIX_READ (50) #define DEF_NICE (0) #define DEF_NR_FILES (1) -#define DEF_UNLINK (0) +#define DEF_UNLINK (1) #define DEF_WRITE_BW_LOG (0) #define DEF_WRITE_LAT_LOG (0) #define DEF_NO_RAND_MAP (0) @@ -582,7 +582,6 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) if (td->filetype == FIO_TYPE_FILE || td->filename) { char tmp[PATH_MAX]; int len = 0; - int i; if (td->directory && td->directory[0] != '\0') sprintf(tmp, "%s/", td->directory); @@ -652,7 +651,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) c3 = to_kmg(td->min_bs[DDIR_WRITE]); c4 = to_kmg(td->max_bs[DDIR_WRITE]); - fprintf(f_out, "%s: (g=%d): rw=%s, odir=%d, bs=%s-%s/%s-%s, rate=%d, ioengine=%s, iodepth=%d\n", td->name, td->groupid, ddir_str[ddir], td->odirect, c1, c2, c3, c4, td->rate, td->io_ops->name, td->iodepth); + fprintf(f_out, "%s: (g=%d): rw=%s, odir=%u, bs=%s-%s/%s-%s, rate=%u, ioengine=%s, iodepth=%u\n", td->name, td->groupid, ddir_str[ddir], td->odirect, c1, c2, c3, c4, td->rate, td->io_ops->name, td->iodepth); free(c1); free(c2); @@ -787,12 +786,12 @@ static int str_rw_cb(void *data, const char *mem) td->sequential = 0; return 0; } else if (!strncmp(mem, "rw", 2)) { - td->ddir = 0; + td->ddir = DDIR_READ; td->iomix = 1; td->sequential = 1; return 0; } else if (!strncmp(mem, "randrw", 6)) { - td->ddir = 0; + td->ddir = DDIR_READ; td->iomix = 1; td->sequential = 0; return 0; @@ -828,15 +827,23 @@ static int str_mem_cb(void *data, const char *mem) if (!strncmp(mem, "malloc", 6)) { td->mem_type = MEM_MALLOC; return 0; - } else if (!strncmp(mem, "shm", 3)) { - td->mem_type = MEM_SHM; - return 0; } else if (!strncmp(mem, "mmap", 4)) { td->mem_type = MEM_MMAP; return 0; + } else if (!strncmp(mem, "shmhuge", 7)) { +#ifdef FIO_HAVE_HUGETLB + td->mem_type = MEM_SHMHUGE; + return 0; +#else + log_err("fio: shmhuge not available\n"); + return 1; +#endif + } else if (!strncmp(mem, "shm", 3)) { + td->mem_type = MEM_SHM; + return 0; } - log_err("fio: mem type: malloc, shm, mmap\n"); + log_err("fio: mem type: malloc, shm, mmap, shmhuge\n"); return 1; } @@ -848,7 +855,7 @@ static int str_ioengine_cb(void *data, const char *str) if (td->io_ops) return 0; - log_err("fio: ioengine: { linuxaio, aio, libaio }, posixaio, sync, mmap, sgio, splice, cpu\n"); + log_err("fio: ioengine= libaio, posixaio, sync, mmap, sgio, splice, cpu, null\n"); log_err("fio: or specify path to dynamic ioengine module\n"); return 1; } @@ -894,7 +901,7 @@ static int str_cpumask_cb(void *data, unsigned int *val) /* * This is our [ini] type file parser. */ -int parse_jobs_ini(char *file, int stonewall_flag) +static int parse_jobs_ini(char *file, int stonewall_flag) { unsigned int global; struct thread_data *td;