X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio-ini.c;h=73cebf220d5f761c6797993b402a556f4af0ca27;hb=a12fc0225482bd1580a332312f2a60f73a9ebc28;hp=0fec342d4b65271387a2ca76c39df29d8f2f0c39;hpb=a6ccc7be771650f903ea77ace2a1af593622c0f4;p=fio.git diff --git a/fio-ini.c b/fio-ini.c index 0fec342d..73cebf22 100644 --- a/fio-ini.c +++ b/fio-ini.c @@ -38,6 +38,7 @@ #define DEF_ZONE_SKIP (0) #define DEF_RWMIX_CYCLE (500) #define DEF_RWMIX_READ (50) +#define DEF_NICE (0) static char fio_version_string[] = "fio 1.3"; @@ -405,8 +406,12 @@ typedef int (str_cb_fn)(struct thread_data *, char *); static int check_str(char *p, char *name, str_cb_fn *cb, struct thread_data *td) { - char *s = strstr(p, name); + char *s; + if (strncmp(p, name, strlen(name))) + return 1; + + s = strstr(p, name); if (!s) return 1; @@ -421,8 +426,12 @@ static int check_str(char *p, char *name, str_cb_fn *cb, struct thread_data *td) static int check_strstore(char *p, char *name, char *dest) { - char *s = strstr(p, name); + char *s; + + if (strncmp(p, name, strlen(name))) + return 1; + s = strstr(p, name); if (!s) return 1; @@ -457,6 +466,9 @@ static int check_range(char *p, char *name, unsigned long *s, unsigned long *e) char option[128]; char *str, *p1, *p2; + if (strncmp(p, name, strlen(name))) + return 1; + strcpy(option, p); p = option; @@ -637,7 +649,6 @@ static int str_ioengine_cb(struct thread_data *td, char *str) static int str_iolog_cb(struct thread_data *td, char *file) { strncpy(td->iolog_file, file, sizeof(td->iolog_file) - 1); - return 0; } @@ -802,6 +813,10 @@ int parse_jobs_ini(char *file) fgetpos(f, &off); continue; } + if (!check_int(p, "nice", &td->nice)) { + fgetpos(f, &off); + continue; + } if (!check_range(p, "bsrange", &ul1, &ul2)) { if (ul1 > ul2) { td->max_bs = ul1; @@ -879,7 +894,16 @@ int parse_jobs_ini(char *file) continue; } if (!check_str(p, "iolog", str_iolog_cb, td)) { - td->iolog = 1; + printf("got read iolog\n"); + td->read_iolog = 1; + td->write_iolog = 0; + fgetpos(f, &off); + continue; + } + if (!td->read_iolog && + !check_str(p, "write_iolog", str_iolog_cb, td)) { + printf("got write iolog\n"); + td->write_iolog = 1; fgetpos(f, &off); continue; } @@ -937,6 +961,7 @@ static int fill_def_thread(void) def_thread.use_thread = DEF_USE_THREAD; def_thread.rwmixcycle = DEF_RWMIX_CYCLE; def_thread.rwmixread = DEF_RWMIX_READ; + def_thread.nice = DEF_NICE; #ifdef FIO_HAVE_DISK_UTIL def_thread.do_disk_util = 1; #endif