From 0e918c9779c7d00e745b96fc3a1b1703633aaf28 Mon Sep 17 00:00:00 2001 From: yfzhang Date: Tue, 13 Apr 2004 16:51:39 +0000 Subject: *** empty log message *** --- .../Kokyu_dsrt_schedulers/EDF_Scheduler.cpp | 50 +++++++++++++++------- .../Kokyu_dsrt_schedulers/EDF_Scheduler.dsui | 7 ++- .../Kokyu_dsrt_schedulers/EDF_Scheduling.pidl | 3 +- .../Makefile.Kokyu_DSRT_Schedulers | 6 ++- 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp index 782346a1b7e..24cb3c2ee41 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp +++ b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.cpp @@ -113,6 +113,7 @@ EDF_Scheduler::create_scheduling_parameter (const EDF_Scheduling::SchedulingPara sched_param_policy->value (value); + DSUI_EVENT_LOG (EDF_SCHED_FAM, CREATE_SCHED_PARAM_END, 0, 0, NULL); return sched_param_policy; } @@ -139,7 +140,7 @@ EDF_Scheduler::begin_new_scheduling_segment (const RTScheduling::Current::IdType // ACE_DEBUG ((LM_DEBUG, "(%t|%T): guid is %d\n", int_guid)); //#endif - DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_SCHED_SEGMENT_START, int_guid, 0, NULL); + DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_NEW_SCHED_SEGMENT_START, int_guid, 0, NULL); EDF_Scheduler_Traits::QoSDescriptor_t qos; EDF_Scheduling::SchedulingParameterPolicy_var sched_param_policy = EDF_Scheduling::SchedulingParameterPolicy::_narrow (sched_policy); @@ -151,7 +152,7 @@ EDF_Scheduler::begin_new_scheduling_segment (const RTScheduling::Current::IdType kokyu_dispatcher_->schedule (guid, qos); - DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_SCHED_SEGMENT_END, int_guid, 0, NULL); + DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_NEW_SCHED_SEGMENT_END, int_guid, 0, NULL); #ifdef KOKYU_DSRT_LOGGING ACE_DEBUG ((LM_DEBUG, "(%t|%T):EDF_Scheduler::begin_new_scheduling_segment exit\n")); @@ -179,6 +180,7 @@ EDF_Scheduler::begin_nested_scheduling_segment (const RTScheduling::Current::IdT implicit_sched_param ACE_ENV_ARG_PARAMETER); ACE_CHECK; + DSUI_EVENT_LOG (EDF_SCHED_FAM, BEGIN_NESTED_SCHED_SEGMENT_END, int_guid, 0, NULL); } void @@ -232,6 +234,7 @@ EDF_Scheduler::end_scheduling_segment (const RTScheduling::Current::IdType &guid DSUI_EVENT_LOG (EDF_SCHED_FAM, END_SCHED_SEGMENT, int_guid, 0, NULL); kokyu_dispatcher_->cancel_schedule (guid); + DSUI_EVENT_LOG (EDF_SCHED_FAM, END_SCHED_SEGMENT_END, int_guid, 0, NULL); } void @@ -269,8 +272,8 @@ EDF_Scheduler::send_request (PortableInterceptor::ClientRequestInfo_ptr ri #ifdef KOKYU_DSRT_LOGGING ACE_DEBUG ((LM_DEBUG, "(%t|%T): send_request " - "from \"%s\"\n", - operation.in ())); + "from \"%s\" and guid is %d\n", + operation.in(), int_guid)); #endif // Make the context to send the context to the target @@ -313,8 +316,20 @@ EDF_Scheduler::send_request (PortableInterceptor::ClientRequestInfo_ptr ri #endif } //Fill the guid in the SC Qos struct + + if(int_guid==1) { + + long long_guid = (long) int_guid+1; + ACE_DEBUG((LM_DEBUG,"The long guid is %d\n",long_guid)); + sc_qos.guid.length (sizeof(long)); + ACE_OS::memcpy (sc_qos.guid.get_buffer (), + &long_guid, + sizeof(long)); + } + else { sc_qos.guid.length (this->current_->id ()->length ()); guid_copy (sc_qos.guid, *(this->current_->id ())); + } sc_qos.deadline = deadline; sc_qos.importance = importance; sc_qos.task_id = task_id; @@ -322,14 +337,17 @@ EDF_Scheduler::send_request (PortableInterceptor::ClientRequestInfo_ptr ri CORBA::Any sc_qos_as_any; sc_qos_as_any <<= sc_qos; - sc.context_data = - ACE_reinterpret_cast(IOP::ServiceContext:: - _tao_seq_CORBA_Octet_ &, - *codec_->encode (sc_qos_as_any)); + sc.context_data = + ACE_reinterpret_cast (CORBA::OctetSeq &, + *codec_->encode (sc_qos_as_any)); + + ACE_OS::memcpy (&int_guid, + sc_qos.guid.get_buffer (), + sc_qos.guid.length ()); #ifdef KOKYU_DSRT_LOGGING ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t|%T): send_request : about to add sched SC\n"))); + "(%t|%T): send_request : about to add sched SC and guid is %d\n",int_guid)); #endif // Add this context to the service context list. @@ -377,7 +395,7 @@ EDF_Scheduler::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri, -#ifdef KOKYU_DSRT_LOGGING +#ifdef MY_KOKYU_DSRT_LOGGING ACE_DEBUG ((LM_DEBUG, "(%t|%T):entered EDF_Scheduler::receive_request\n")); #endif @@ -492,7 +510,7 @@ EDF_Scheduler::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri, ACE_DEBUG ((LM_DEBUG, "(%t|%T): receive_request interceptor done\n")); #endif - DSUI_EVENT_LOG (EDF_SCHED_FAM, LEAVE_SERVER_SCHED_TIME, 0, 0, NULL); + DSUI_EVENT_LOG (EDF_SCHED_FAM, LEAVE_SERVER_SCHED_TIME, int_guid, 0, NULL); } void @@ -576,10 +594,10 @@ EDF_Scheduler::send_reply (PortableInterceptor::ServerRequestInfo_ptr ri CORBA::Any sc_qos_as_any; sc_qos_as_any <<= sc_qos; - sc.context_data = ACE_reinterpret_cast( - IOP::ServiceContext:: - _tao_seq_CORBA_Octet_ &, - *codec_->encode (sc_qos_as_any)); + sc.context_data = + ACE_reinterpret_cast (CORBA::OctetSeq &, + *codec_->encode (sc_qos_as_any)); + // Add this context to the service context list. ri->add_reply_service_context (sc, 1 ACE_ENV_ARG_PARAMETER); @@ -705,7 +723,7 @@ EDF_Scheduler::receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri guid.length ()); EDF_Scheduler_Traits::QoSDescriptor_t qos; - qos.deadline_ = qos.importance_ = importance; + qos.importance_ = importance; qos.deadline_ = deadline; this->kokyu_dispatcher_->schedule (guid, qos); DSUI_EVENT_LOG (EDF_SCHED_FAM, EXIT_RECEIVE_REPLY, int_guid, 0, NULL); diff --git a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui index 5cefd8aef6a..0af7b9186c3 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui +++ b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduler.dsui @@ -1,4 +1,7 @@ # EDF_SCHED (EDF_Scheduler.cpp) +DSTRM_EVENT EDF_SCHED 4 END_SCHED_SEGMENT_END 30 "End scheduling segment end" print_string +DSTRM_EVENT EDF_SCHED 4 BEGIN_NESTED_SCHED_SEGMENT_END 29 "Begin nested scheduling segment end" print_string +DSTRM_EVENT EDF_SCHED 4 CREATE_SCHED_PARAM_END 28 "Create scheduling segment end" print_string DSTRM_EVENT EDF_SCHED 4 CONSTRUCTOR 27 "Dispatcher created in constructor" print_string DSTRM_EVENT EDF_SCHED 4 RECEIVE_OTHER 26 "Enter receive_other" print_string DSTRM_EVENT EDF_SCHED 4 RECEIVE_EXCEPTION 25 "Enter receive_exception" print_string @@ -24,7 +27,7 @@ DSTRM_EVENT EDF_SCHED 4 CALL_KOKYU_DISPATCH_UPDATE_SCHEDULE DSTRM_EVENT EDF_SCHED 4 ENTER_CLIENT_SCHED_TIME 5 "Point which records the entering scheduler time on the client side" print_string DSTRM_EVENT EDF_SCHED 4 DISPATCHER_SHUTDOWN 4 "Kokyu DSRT Dispatcher shutdown" print_string DSTRM_EVENT EDF_SCHED 4 CREATE_SCHED_PARAM 3 "Create Scheduling parameter" print_string -DSTRM_EVENT EDF_SCHED 4 BEGIN_SCHED_SEGMENT_START 2 "Start Schedule segment" print_string -DSTRM_EVENT EDF_SCHED 4 BEGIN_SCHED_SEGMENT_END 1 "End Schedule segment" print_string +DSTRM_EVENT EDF_SCHED 4 BEGIN_NEW_SCHED_SEGMENT_START 2 "Start new Schedule segment" print_string +DSTRM_EVENT EDF_SCHED 4 BEGIN_NEW_SCHED_SEGMENT_END 1 "End new Schedule segment" print_string DSTRM_EVENT EDF_SCHED 4 KOKYU_SCHED_START 0 "Start Kokyu Schedule call" print_string diff --git a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl index 4f16c754a6e..cb28771919a 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl +++ b/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl @@ -45,7 +45,8 @@ module EDF_Scheduling { TimeBase::TimeT deadline; long importance; - TimeBase::TimeT period; + TimeBase::TimeT period; + TimeBase::TimeT remain_exe; long task_id; }; diff --git a/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers b/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers index 9b55d55ac0e..e80fc1dafff 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers +++ b/TAO/examples/Kokyu_dsrt_schedulers/Makefile.Kokyu_DSRT_Schedulers @@ -23,10 +23,12 @@ endif FILES = \ EDF_Scheduler \ + MLF_Scheduler \ Task_Stats \ utils \ Kokyu_qosC \ - EDF_SchedulingC + EDF_SchedulingC \ + MLF_SchedulingC #---------------------------------------------------------------------------- # Include macros and targets @@ -117,6 +119,8 @@ ifeq ($(static_libs),1) endif CPPFLAGS += -DKOKYU_DSRT_LOGGING +CPPFLAGS += -DMY_KOKYU_DSRT_LOGGING +#CPPFLAGS += -DACE_HAS_DUMP CPPFLAGS += -DKOKYU_HAS_RELEASE_GUARD CPPFLAGS += -I$(DATASTREAM_ROOT)/include LDFLAGS += -L../../../lib -L$(DATASTREAM_ROOT)/lib -- cgit v1.2.1