diff options
author | storri <storri@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-01-27 15:55:31 +0000 |
---|---|---|
committer | storri <storri@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-01-27 15:55:31 +0000 |
commit | b7a24666299e1ba2c738cc022fb0022b8583fce5 (patch) | |
tree | cbc889e5f7a4698e126661cf24c36a6117d9a4ab | |
parent | 0c081bb7374a3f5e339c79613dd616b46595d2b8 (diff) | |
download | ATCD-b7a24666299e1ba2c738cc022fb0022b8583fce5.tar.gz |
dt prio and oneway client changes
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) { |