summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstorri <storri@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-01-27 15:55:31 +0000
committerstorri <storri@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-01-27 15:55:31 +0000
commitb7a24666299e1ba2c738cc022fb0022b8583fce5 (patch)
treecbc889e5f7a4698e126661cf24c36a6117d9a4ab
parent0c081bb7374a3f5e339c79613dd616b46595d2b8 (diff)
downloadATCD-b7a24666299e1ba2c738cc022fb0022b8583fce5.tar.gz
dt prio and oneway client changes
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile28
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_client2
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_server2
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_client2
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_server2
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway.dsui1
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway_enable.dsui3
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_client.cpp10
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_server.cpp14
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1.idl2
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.cpp56
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.h3
-rw-r--r--TAO/examples/Kokyu_dsrt_schedulers/edf_example/test_i.cpp10
13 files changed, 76 insertions, 59 deletions
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile
index 91557f60794..e967cb55981 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile
@@ -20,23 +20,27 @@ endif
%.tgt0:
ifeq ($(KEEP_GOING),1)
- -@$(MAKE) -f Makefile.dt_oneway_client -C . $(*);
- -@$(MAKE) -f Makefile.dt_prio_client -C . $(*);
- -@$(MAKE) -f Makefile.dt_twoway_client -C . $(*);
+# -@$(MAKE) -f Makefile.dt_oneway_client -C . $(*);
+ -@$(MAKE) -f Makefile.dt_two_prio_client -C . $(*);
+# -@$(MAKE) -f Makefile.dt_prio_client -C . $(*);
+# -@$(MAKE) -f Makefile.dt_twoway_client -C . $(*);
else
- @$(MAKE) -f Makefile.dt_oneway_client -C . $(*);
- @$(MAKE) -f Makefile.dt_prio_client -C . $(*);
- @$(MAKE) -f Makefile.dt_twoway_client -C . $(*);
+# @$(MAKE) -f Makefile.dt_oneway_client -C . $(*);
+ @$(MAKE) -f Makefile.dt_two_prio_client -C . $(*);
+# @$(MAKE) -f Makefile.dt_prio_client -C . $(*);
+# @$(MAKE) -f Makefile.dt_twoway_client -C . $(*);
endif
%.tgt1: %.tgt0
ifeq ($(KEEP_GOING),1)
- -@$(MAKE) -f Makefile.dt_oneway_server -C . $(*);
- -@$(MAKE) -f Makefile.dt_prio_server -C . $(*);
- -@$(MAKE) -f Makefile.dt_twoway_server -C . $(*);
+# -@$(MAKE) -f Makefile.dt_oneway_server -C . $(*);
+ -@$(MAKE) -f Makefile.dt_two_prio_server -C . $(*);
+# -@$(MAKE) -f Makefile.dt_prio_server -C . $(*);
+# -@$(MAKE) -f Makefile.dt_twoway_server -C . $(*);
else
- @$(MAKE) -f Makefile.dt_oneway_server -C . $(*);
- @$(MAKE) -f Makefile.dt_prio_server -C . $(*);
- @$(MAKE) -f Makefile.dt_twoway_server -C . $(*);
+# @$(MAKE) -f Makefile.dt_oneway_server -C . $(*);
+ @$(MAKE) -f Makefile.dt_two_prio_server -C . $(*);
+# @$(MAKE) -f Makefile.dt_prio_server -C . $(*);
+# @$(MAKE) -f Makefile.dt_twoway_server -C . $(*);
endif
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_client b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_client
index 2f006d4c02a..634a4802de7 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_client
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_client
@@ -82,7 +82,7 @@ ifeq ($(static_libs),1)
endif
endif
-#CPPFLAGS += -DKOKYU_DSRT_LOGGING
+CPPFLAGS += -DKOKYU_DSRT_LOGGING
LDFLAGS += -L../../../../lib -L$(DATASTREAM_ROOT)/lib
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_server b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_server
index 01766467678..dda5edfb535 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_server
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_oneway_server
@@ -84,7 +84,7 @@ ifeq ($(static_libs),1)
endif
endif
-#CPPFLAGS += -DKOKYU_DSRT_LOGGING
+CPPFLAGS += -DKOKYU_DSRT_LOGGING
LDFLAGS += -L../../../../lib -L$(DATASTREAM_ROOT)/lib
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_client b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_client
index 69e22816fc4..a74085fcc70 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_client
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_client
@@ -82,7 +82,7 @@ ifeq ($(static_libs),1)
endif
endif
-
+CPPFLAGS += -DKOKYU_DSRT_LOGGING
LDFLAGS += -L../../../../lib -L$(DATASTREAM_ROOT)/lib
TAO_IDLFLAGS += -Ge 1 -Sc -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_server b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_server
index cf2550272c3..61f7e382ed7 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_server
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/Makefile.dt_prio_server
@@ -82,7 +82,7 @@ ifeq ($(static_libs),1)
CPPFLAGS += -DTAO_AS_STATIC_LIBS -DTAO_AS_STATIC_LIBS -DACE_AS_STATIC_LIBS
endif
endif
-
+CPPFLAGS += -DKOKYU_DSRT_LOGGING
LDFLAGS += -L../../../../lib -L$(DATASTREAM_ROOT)/lib
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway.dsui b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway.dsui
index 6058a22353f..6ae4abe310a 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway.dsui
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway.dsui
@@ -1,4 +1,5 @@
# TEST_ONE
+DSTRM_EVENT TEST_ONE 3 DEADLINE_MISSED 2 "Deadline missed" print_string
DSTRM_EVENT TEST_ONE 3 STOP_SERVICE 1 "Stop service time" print_string
DSTRM_EVENT TEST_ONE 3 START_SERVICE 0 "Start service time" print_string
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway_enable.dsui b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway_enable.dsui
index 0f1c13c9d9f..2c2a3037d4e 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway_enable.dsui
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_oneway_enable.dsui
@@ -24,8 +24,8 @@ DSTRM_EVENT EDF_SCHED 4 BEGIN_SCHED_SEGMENT 2
DSTRM_EVENT EDF_SCHED 4 END_SCHED_SEGMENT 1
DSTRM_EVENT EDF_SCHED 4 KOKYU_SCHED_START 0
-
# TEST_ONE
+DSTRM_EVENT TEST_ONE 3 DEADLINE_MISSED 2
DSTRM_EVENT TEST_ONE 3 STOP_SERVICE 1
DSTRM_EVENT TEST_ONE 3 START_SERVICE 0
@@ -36,7 +36,6 @@ DSTRM_EVENT WORKER_GROUP 2 END_SCHED_SEGMENT 2
DSTRM_EVENT WORKER_GROUP 2 BEGIN_SCHED_SEGMENT 1
DSTRM_EVENT WORKER_GROUP 2 WORKER_STARTED 0
-
# MAIN GROUP
DSTRM_EVENT MAIN_GROUP 1 SCHEDULER_STARTED 8
DSTRM_EVENT MAIN_GROUP 1 SCHEDULER_SHUTDOWN 7
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_client.cpp b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_client.cpp
index 158ef8815f1..e75d39909d1 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_client.cpp
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_client.cpp
@@ -12,8 +12,8 @@ ACE_RCSID(MT_Server, client, "client.cpp,v 1.2 2003/10/08 13:26:32 venkita Exp")
const char *ior = "file://test.ior";
int niterations = 5;
-int do_shutdown = 0;
-int enable_dynamic_scheduling = 0;
+int do_shutdown = 1;
+int enable_dynamic_scheduling = 1;
int enable_yield = 1;
class Worker : public ACE_Task_Base
@@ -54,7 +54,7 @@ private:
int
parse_args (int argc, char *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, "xk:i:ds");
+ ACE_Get_Opt get_opts (argc, argv, "xk:i:s");
int c;
while ((c = get_opts ()) != -1)
@@ -72,10 +72,6 @@ parse_args (int argc, char *argv[])
niterations = ACE_OS::atoi (get_opts.opt_arg ());
break;
- case 'd':
- enable_dynamic_scheduling = 1;
- break;
-
case 's':
enable_yield = 0;
break;
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_server.cpp b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_server.cpp
index 8b331197762..604167378bf 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_server.cpp
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/dt_prio_server.cpp
@@ -12,15 +12,15 @@ ACE_RCSID(MT_Server, server, "server.cpp,v 1.3 2003/10/14 05:57:01 jwillemsen Ex
const char *ior_output_file = "test.ior";
-int nthreads = 2;
-int enable_dynamic_scheduling = 0;
+int nthreads = 3;
+int enable_dynamic_scheduling = 1;
const CORBA::Short max_importance = 100;
int enable_yield = 1;
int
parse_args (int argc, char *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, "o:n:ds");
+ ACE_Get_Opt get_opts (argc, argv, "o:n:s");
int c;
while ((c = get_opts ()) != -1)
@@ -34,10 +34,6 @@ parse_args (int argc, char *argv[])
nthreads = ACE_OS::atoi (get_opts.opt_arg ());
break;
- case 'd':
- enable_dynamic_scheduling = 1;
- break;
-
case 's':
enable_yield = 0;
break;
@@ -192,6 +188,8 @@ main (int argc, char *argv[])
poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+ ACE_DEBUG((LM_DEBUG,"(%t|%T) NOW I AM IN THE MAIN THREAD!\n"));
+
Worker worker (orb.in ());
if (worker.activate (flags,
nthreads,
@@ -227,6 +225,8 @@ main (int argc, char *argv[])
}
ACE_ENDTRY;
+ ACE_DEBUG ((LM_DEBUG, "(%t|%T) NOW I AM ABOUT TO EXIT MAIN!\n"));
+
ACE_DEBUG ((LM_DEBUG, "Exiting main...\n"));
task_stats.dump_samples ("timeline.txt",
"Time\t\tGUID",
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1.idl b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1.idl
index 9c8ea2d0bf0..a2da26ab405 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1.idl
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1.idl
@@ -2,7 +2,7 @@
interface Simple_Server1
{
- oneway void test_method (in long x);
+ oneway void test_method (in long x, in long y);
void shutdown ();
};
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.cpp b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.cpp
index 7ffc0a8c21c..baf9408678b 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.cpp
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.cpp
@@ -5,6 +5,9 @@
#include "ace/Task.h"
#include "ace/ACE.h"
#include "tao/debug.h"
+#include "orbsvcs/orbsvcs/Time_Utilities.h"
+#include "EDF_Scheduler.h"
+#include "Task_Stats.h"
#include "dt_oneway_config.h"
#include "dt_oneway_dsui_families.h"
@@ -16,16 +19,14 @@
ACE_RCSID(MT_Server, test1_i, "test1_i.cpp,v 1.2 2003/10/08 13:26:32 venkita Exp")
+int Deadline_missed = 0;
+
void
-Simple_Server1_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL_NOT_USED)
+Simple_Server1_i::test_method (CORBA::Long exec_duration, CORBA::Long deadline ACE_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException))
{
-/*DTTIME
- record the entering service time on the server side.
- Thirteenth Time.
-*/
- DSUI_EVENT_LOG (TEST_ONE_FAM, START_SERVICE, 1, 0, NULL);
+
ACE_hthread_t thr_handle;
ACE_Thread::self (thr_handle);
@@ -37,6 +38,8 @@ Simple_Server1_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL_NOT_US
this->current_->id (ACE_ENV_SINGLE_ARG_PARAMETER)->get_buffer (),
sizeof (this->current_->id (ACE_ENV_SINGLE_ARG_PARAMETER)->length ()));
+ DSUI_EVENT_LOG (TEST_ONE_FAM, START_SERVICE, guid, 0, NULL);
+
ACE_High_Res_Timer timer;
ACE_Time_Value elapsed_time;
@@ -68,7 +71,7 @@ Simple_Server1_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL_NOT_US
//Applicable only for CV based implementations
//yield every 1 sec
- ACE_Time_Value yield_interval (1,0);
+ ACE_Time_Value yield_interval (0,100000);
ACE_Time_Value yield_count_down_time (yield_interval);
ACE_Countdown_Time yield_count_down (&yield_count_down_time);
@@ -84,11 +87,11 @@ Simple_Server1_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL_NOT_US
++j;
#ifdef KOKYU_DSRT_LOGGING
- if (j%1000 == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) loop # = %d, load = %usec\n", j, exec_duration));
- }
+// if (j%1000 == 0)
+// {
+// ACE_DEBUG ((LM_DEBUG,
+// "(%t|%T) loop # = %d, load = %usec\n", j, exec_duration));
+// }
#endif
if (j%1000 == 0)
{
@@ -109,10 +112,10 @@ Simple_Server1_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL_NOT_US
const char * name = 0;
- CORBA::Policy_ptr implicit_sched_param = 0;
+ CORBA::Policy_var implicit_sched_param = sched_param_policy;
current_->update_scheduling_segment (name,
sched_param_policy.in (),
- implicit_sched_param
+ implicit_sched_param.in ()
ACE_ENV_ARG_PARAMETER);
yield_count_down_time = yield_interval;
yield_count_down.start ();
@@ -120,18 +123,31 @@ Simple_Server1_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL_NOT_US
}
}
+ TimeBase::TimeT current;
+ ORBSVCS_Time::Time_Value_to_TimeT (current, ACE_OS::gettimeofday ());
+ CORBA::Long temp = (long) current;
+ if(temp > deadline )
+ Deadline_missed=Deadline_missed +1;
+
timer.stop ();
timer.elapsed_time (elapsed_time);
-
+
+
ACE_DEBUG ((LM_DEBUG,
"Request processing in thread %t done, "
- "prio = %d, load = %d, elapsed time = %umsec\n",
- prio, exec_duration, elapsed_time.msec () ));
+ "prio = %d, load = %d, elapsed time = %umsec, deadline_missed = %d\n",
+ prio, exec_duration, elapsed_time.msec (),Deadline_missed ));
/*DTTIME:
- recording the finishing service time on the server side.
- Fourteenth Time.
+ recording the finishing time on the server side. please also record the deadline_missed variable.
*/
-// DSUI_EVENT_LOG (TEST_ONE_FAM, STOP_SERVICE, 1,0,NULL);
+ char* format = "Deadline missed: %d";
+ char* extra_info = (char*) ACE_Allocator::instance()->malloc (strlen(format) + sizeof (Deadline_missed) - 2);
+ if (extra_info != 0) {
+ ACE_OS::sprintf(extra_info, "Deadline missed: %d", Deadline_missed);
+ DSUI_EVENT_LOG (TEST_ONE_FAM, DEADLINE_MISSED, guid, strlen(extra_info), extra_info);
+ }
+ ACE_Allocator::instance()->free(extra_info);
+ DSUI_EVENT_LOG (TEST_ONE_FAM, STOP_SERVICE, guid,0,NULL);
}
void
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.h b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.h
index cf7fc0f2fa4..7b016ec37ab 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.h
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test1_i.h
@@ -36,7 +36,7 @@ public:
// ctor
// = The Simple_Server1 methods.
- void test_method (CORBA::Long x ACE_ENV_ARG_DECL_NOT_USED)
+ void test_method (CORBA::Long x, CORBA::Long y ACE_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException));
void shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
@@ -50,6 +50,7 @@ private:
// The ORB
};
+
#if defined(__ACE_INLINE__)
#include "test1_i.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test_i.cpp b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test_i.cpp
index 6d63f397dd9..da26fdbb54f 100644
--- a/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test_i.cpp
+++ b/TAO/examples/Kokyu_dsrt_schedulers/edf_example/test_i.cpp
@@ -73,11 +73,11 @@ Simple_Server_i::test_method (CORBA::Long exec_duration ACE_ENV_ARG_DECL)
++j;
#ifdef KOKYU_DSRT_LOGGING
- if (j%1000 == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t|%T) loop # = %d, load = %usec\n", j, exec_duration));
- }
+// if (j%1000 == 0)
+// {
+// ACE_DEBUG ((LM_DEBUG,
+// "(%t|%T) loop # = %d, load = %usec\n", j, exec_duration));
+// }
#endif
if (j%1000 == 0)
{