}
}
-void set_overhead(int n)
+int
+set_overhead(const char *str)
{
- overhead.tv_sec = n / 1000000;
- overhead.tv_nsec = n % 1000000 * 1000;
+ return parse_ts(str, &overhead);
}
static void
extern int read_int_from_file(struct tcb *, const char *, int *);
extern void set_sortby(const char *);
-extern void set_overhead(int);
+extern int set_overhead(const char *);
extern bool get_instruction_pointer(struct tcb *, kernel_ulong_t *);
extern bool get_stack_pointer(struct tcb *, kernel_ulong_t *);
outfname = optarg;
break;
case 'O':
- i = string_to_uint(optarg);
- if (i < 0)
+ if (set_overhead(optarg) < 0)
error_opt_arg(c, optarg);
- set_overhead(i);
break;
case 'p':
process_opt_p_list(optarg);
}
}
-grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c
-grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1
-grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -enanosleep
-grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -enanosleep
-grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw
-grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1
-grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -enanosleep
-grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -enanosleep
+GENERIC=' *[^ ]+ +0\.0[^n]*nanosleep *'
+WALLCLOCK=' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep *'
+WALLCLOCK1='100\.00 +(1\.[01]|0\.99)[^n]*nanosleep'
+HALFCLOCK=' *[^ ]+ +0\.[567][^n]*nanosleep *'
+
+grep_log "$GENERIC" -c
+grep_log "$GENERIC" -c -O1
+grep_log "$GENERIC" -c -enanosleep
+grep_log "$GENERIC" -c -O1 -enanosleep
+grep_log "$WALLCLOCK" -cw
+grep_log "$WALLCLOCK" -cw -O1
+grep_log "$WALLCLOCK1" -cw -enanosleep
+grep_log "$WALLCLOCK1" -cw -O1 -enanosleep
+grep_log "$HALFCLOCK" -cw -O4.5e2ms -enanosleep
+grep_log "$HALFCLOCK" -cw -O4.5e-1s -enanosleep
+grep_log "$HALFCLOCK" -cw -O456789012ns -enanosleep
exit 0