From 14c854543b1a3cf344a371a5b45595657f95786b Mon Sep 17 00:00:00 2001 From: leochanj105 Date: Tue, 26 Oct 2021 13:22:32 -0400 Subject: add deadlines and costs --- extra.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'extra.h') diff --git a/extra.h b/extra.h index 7bcc8f5..fce8c3f 100644 --- a/extra.h +++ b/extra.h @@ -79,16 +79,18 @@ char _rt_shm_name[_ID_SZ] = "/_libextra_barrier-"; #if LITMUS lt_t _rt_period; lt_t _rt_phase; +lt_t _rt_cost; +lt_t _rt_deadline; int _rt_crit; struct control_page *_rt_cp; #endif static void _rt_load_params_itrl(int argc, char **argv) { #ifdef PAIRED - if (argc != (8 + LITMUS*3) && argc != (9 + LITMUS*3)) { + if (argc != (8 + LITMUS*5) && argc != (9 + LITMUS*5)) { fprintf(stderr, "Usage: %s \n", argv[0]); #else - if (argc != (6 + LITMUS*3)) { + if (argc != (6 + LITMUS*5)) { fprintf(stderr, "Usage: %s \n", argv[0]); #endif /* PAIRED */ fprintf(stderr, " string for logging. Name of this task.\n"); @@ -107,6 +109,8 @@ static void _rt_load_params_itrl(int argc, char **argv) { fprintf(stderr, " in ms\n"); fprintf(stderr, " 0 for Level-A, 1 for Level-B, 2 for Level-C\n"); fprintf(stderr, " in ms\n"); + fprintf(stderr, " in ms\n"); + fprintf(stderr, " in ms\n"); #endif /* LITMUS */ exit(1); } @@ -212,6 +216,8 @@ static void _rt_load_params_itrl(int argc, char **argv) { _rt_period = ms2ns(strtoul(argv[end], NULL, 10)); _rt_crit = atoi(argv[end+1]); _rt_phase = ms2ns(strtoul(argv[end+2], NULL, 10)); + _rt_cost = ms2ns(strtoul(argv[end+3], NULL, 10)); + _rt_deadline = ms2ns(strtoul(argv[end+4], NULL, 10)); // _rt_phase = 0; unsigned int wait = 1; if (be_migrate_to_domain(_rt_core) < 0) { @@ -221,9 +227,9 @@ static void _rt_load_params_itrl(int argc, char **argv) { struct rt_task rt_param; init_rt_task_param(&rt_param); // Fake exec cost - this value ignored by the MC^2 scheduler - rt_param.exec_cost = _rt_period; + rt_param.exec_cost = _rt_cost; rt_param.period = _rt_period; - rt_param.relative_deadline = 0; + rt_param.relative_deadline = _rt_deadline; rt_param.phase = _rt_phase; rt_param.priority = LITMUS_LOWEST_PRIORITY; // rt_param.priority = ns2ms(_rt_phase); -- cgit v1.2.2