- configurable criteria (-m argument)
- configurable iterations
- check stats init return codes
Signed-off-by: Gilles Carry <[EMAIL PROTECTED]>
Cc: Darren Hart <[EMAIL PROTECTED]>
Cc: Tim Chavez <[EMAIL PROTECTED]>
---
.../realtime/func/hrtimer-prio/hrtimer-prio.c | 32 +++++++++++++------
1 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
b/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
index 3fdda64..f22ca83 100644
--- a/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
+++ b/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
@@ -49,7 +49,7 @@
#include <libjvmsim.h>
#include <libstats.h>
-#define DEF_MED_PRIO 60 // (softirqd-hrtimer,98]
+#define DEF_MED_PRIO 60 // (softirqd-hrtimer,98)
#define DEF_ITERATIONS 10000
#define HIST_BUCKETS 100
#define DEF_BUSY_TIME 10 // Duration of busy work in milliseconds
@@ -58,10 +58,10 @@
static int run_jvmsim = 0;
static int med_prio = DEF_MED_PRIO;
-static int high_prio = DEF_MED_PRIO+1;
+static int high_prio;
static int busy_time = DEF_BUSY_TIME;
static int iterations = DEF_ITERATIONS;
-static unsigned long criteria = DEF_CRITERIA; // FIXME: make configurable
+static unsigned long criteria = DEF_CRITERIA;
static int busy_threads;
static stats_container_t dat;
@@ -78,6 +78,7 @@ void usage(void)
printf(" -i# #:number of iterations, defaults to %d\n",
DEF_ITERATIONS);
printf(" -n# #:number of busy threads, defaults to
NR_CPUS*2\n");
printf(" -f# #:rt fifo priority of busy threads (1,98),
defaults to %d\n", DEF_MED_PRIO);
+ printf(" -m# #:maximum timer latency in microseconds,
defaults to %d\n", DEF_CRITERIA);
}
int parse_args(int c, char *v)
@@ -99,11 +100,12 @@ int parse_args(int c, char *v)
break;
case 'f':
med_prio = MIN(atoi(v), 98);
- high_prio = med_prio+1;
break;
case 'i':
- printf("Setting iterations disabled\n");
- // iterations = atoi(v);
+ iterations = atoi(v);
+ break;
+ case 'm':
+ criteria = atoi(v);
break;
default:
handled = 0;
@@ -155,7 +157,8 @@ int main(int argc, char *argv[])
int t_id;
setup();
busy_threads = 2 * sysconf(_SC_NPROCESSORS_ONLN); // default
busy_threads
- rt_init("f:i:jhn:t:", parse_args, argc, argv);
+ rt_init("f:i:jhn:t:m:", parse_args, argc, argv);
+ high_prio = med_prio + 1;
// Set main()'s prio to one above the timer_thread so it is sure to not
// be starved
@@ -183,9 +186,18 @@ int main(int argc, char *argv[])
stats_container_t hist;
stats_quantiles_t quantiles;
- stats_container_init(&dat, iterations);
- stats_container_init(&hist, HIST_BUCKETS);
- stats_quantiles_init(&quantiles, (int)log10(iterations));
+ if (stats_container_init(&dat, iterations)) {
+ printf("Cannot init stat containers for dat\n");
+ exit(1);
+ }
+ if (stats_container_init(&hist, HIST_BUCKETS)) {
+ printf("Cannot init stat containers for hist\n");
+ exit(1);
+ }
+ if (stats_quantiles_init(&quantiles, (int)log10(iterations))) {
+ printf("Cannot init stat quantiles\n");
+ exit(1);
+ }
t_id = create_fifo_thread(timer_thread, NULL, high_prio);
if (t_id == -1) {
--
1.5.4.3.450.gb92176
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list