On Wed, 5 Jun 2019, Daniel Wagner wrote: > Many of the test programs have the --loop argument for automatic > stopping. The main problem with the --loop argument is how long is > --loop 1000? > > To simplify automated tests introduce a --duration argument which > allows to set the time how long a test should run. This allows the > test suite to define the execution time and also the timeout which a > normal human can understand. > > For example run the test for 10 minutes and timeout at 11 minutes: > > # timeout 11m cyclicdeadline -D 10m > > Signed-off-by: Daniel Wagner <wagi@xxxxxxxxx> > --- > src/sched_deadline/cyclicdeadline.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c > index 6d461b27ac43..47892daf747b 100644 > --- a/src/sched_deadline/cyclicdeadline.c > +++ b/src/sched_deadline/cyclicdeadline.c > @@ -21,6 +21,8 @@ > #include <linux/unistd.h> > #include <linux/magic.h> > > +#include <rt-utils.h> > + > #ifdef __i386__ > #ifndef __NR_sched_setattr > #define __NR_sched_setattr 351 > @@ -1049,6 +1051,7 @@ int main (int argc, char **argv) > unsigned int interval = 1000; > unsigned int step = 500; > int percent = 60; > + int duration = 0; > u64 runtime; > u64 start_period; > u64 end_period; > @@ -1062,7 +1065,7 @@ int main (int argc, char **argv) > exit(-1); > } > > - while ((c = getopt(argc, argv, "+hac:i:s:t:")) >= 0) { > + while ((c = getopt(argc, argv, "+hac:i:s:t:D:")) >= 0) { > switch (c) { > case 'a': > all_cpus = 1; > @@ -1081,6 +1084,9 @@ int main (int argc, char **argv) > case 't': > nr_threads = atoi(optarg); > break; > + case 'D': > + duration = parse_time_string(optarg); > + break; > case 'h': > default: > usage(argv); > @@ -1246,6 +1252,10 @@ int main (int argc, char **argv) > > signal(SIGINT, sighand); > signal(SIGTERM, sighand); > + signal(SIGALRM, sighand); > + > + if (duration) > + alarm(duration); > > if (!fail) > loop(sched_data, nr_threads); > -- > 2.20.1 > I'm reluctantly giving you a signed-off-by. I say reluctantly because the program needs some work, so the problems exited before your patch, but it's a little hard to test your patch until these problems get resolved. I can't run this without getting the message For less than 2ms run times, you need to have HRTICK enabled in debugfs/sched_features - The usage message is broken - There is no help - There are no long options Anyone looking for place to start hacking, this program could use some love Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>