diff options
34 files changed, 6764 insertions, 2124 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index c3753e062fa..6d38590e47b 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,46 @@ +Sun Aug 24 13:09:50 2003 Venkita Subramonian <venkita@cs.wustl.edu> + + * orbsvcs/orbsvcs/Makefile.RTSched: + * orbsvcs/orbsvcs/RTSched.bor: + * orbsvcs/orbsvcs/RTSched.dsp: + * orbsvcs/orbsvcs/RTSched.mpc: + * orbsvcs/orbsvcs/RtecBase.idl: + * orbsvcs/orbsvcs/RtecScheduler.idl: + * orbsvcs/orbsvcs/Runtime_Scheduler.cpp: + * orbsvcs/orbsvcs/Runtime_Scheduler.h: + * orbsvcs/orbsvcs/Scheduler_Factory.cpp: + * orbsvcs/orbsvcs/Scheduler_Factory.h: + * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h: + * orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h: + * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp: + * orbsvcs/orbsvcs/Sched/Config_Scheduler.h: + * orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp: + Integrated the scheduler from the Boeing WSOA program into the + main trunk. This scheduler has more interfaces and bug fixes + than the one which existed in the main trunk. + + * orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.{cpp,h}: + * orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp: + Changes to integrate the scheduler with the event channel. + + * orbsvcs/tests/EC_Multiple/EC_Multiple.{cpp,h}: + * orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h: + * orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h: + * orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h: + * orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp (main): + * orbsvcs/tests/Sched_Conf/Sched_Conf.cpp (main): + * orbsvcs/tests/Event/Basic/Schedule.cpp (execute_test): + * orbsvcs/examples/RtEC/Kokyu/Service.cpp: + * orbsvcs/Dump_Schedule/Dump_Schedule.cpp: + * examples/Simulator/Event_Supplier/DualEC_Sup.{cpp,h}: + Changes to compute_scheduling, dump_schedule method calls to + reflect changes made to interfaces as part of the WSOA scheduler. + + Sun Aug 24 15:01:12 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl> * tao/DynamicAny/DynArray_i.cpp: diff --git a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp index 4f78f028217..ba503cd6270 100644 --- a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp +++ b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.cpp @@ -704,6 +704,7 @@ DualEC_Supplier::compute_schedules (void) RtecScheduler::RT_Info_Set_out infos_out_hi (this->infos_hi_); + RtecScheduler::Dependency_Set_out deps_out_hi (this->deps_hi_); RtecScheduler::Config_Info_Set_out configs_out_hi (this->configs_hi_); RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out_hi (this->anomalies_hi_); sched_hi_->compute_scheduling @@ -711,10 +712,12 @@ DualEC_Supplier::compute_schedules (void) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos_out_hi, configs_out_hi, anomalies_out_hi ACE_ENV_ARG_PARAMETER); + infos_out_hi, deps_out_hi_, + configs_out_hi, anomalies_out_hi ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; RtecScheduler::RT_Info_Set_out infos_out_lo (this->infos_lo_); + RtecScheduler::Dependency_Set_out deps_out_lo (this->deps_lo_); RtecScheduler::Config_Info_Set_out configs_out_lo (this->configs_lo_); RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out_lo (this->anomalies_lo_); sched_lo_->compute_scheduling @@ -722,7 +725,8 @@ DualEC_Supplier::compute_schedules (void) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos_out_lo, configs_out_lo, anomalies_out_lo ACE_ENV_ARG_PARAMETER); + infos_out_lo, deps_out_lo_, + configs_out_lo, anomalies_out_lo ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; #else /* ! __SUNPRO_CC */ @@ -732,7 +736,9 @@ DualEC_Supplier::compute_schedules (void) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - this->infos_hi_.out (), this->configs_hi_.out (), + this->infos_hi_.out (), + this->deps_hi_.out (), + this->configs_hi_.out (), this->anomalies_hi_.out () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -741,7 +747,9 @@ DualEC_Supplier::compute_schedules (void) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - this->infos_lo_.out (), this->configs_lo_.out (), + this->infos_lo_.out (), + this->deps_hi_.out (), + this->configs_lo_.out (), this->anomalies_lo_.out () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -750,6 +758,7 @@ DualEC_Supplier::compute_schedules (void) if (dump_schedule_headers_ && (this->hi_schedule_file_name_ != 0)) { ACE_Scheduler_Factory::dump_schedule (infos_hi_.in (), + deps_hi_.in (), configs_hi_.in (), anomalies_hi_.in (), this->hi_schedule_file_name_); @@ -759,6 +768,7 @@ DualEC_Supplier::compute_schedules (void) if (dump_schedule_headers_ && (this->lo_schedule_file_name_ != 0)) { ACE_Scheduler_Factory::dump_schedule (infos_lo_.in (), + deps_lo_.in (), configs_lo_.in (), anomalies_lo_.in (), this->lo_schedule_file_name_); diff --git a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h index 37c7cb4a1bf..eb66f22e8ec 100644 --- a/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h +++ b/TAO/examples/Simulator/Event_Supplier/DualEC_Sup.h @@ -168,9 +168,11 @@ private: // References for CORBA RtecScheduler data structures RtecScheduler::RT_Info_Set_var infos_hi_; + RtecScheduler::Dependency_Set_var deps_hi_; RtecScheduler::Config_Info_Set_var configs_hi_; RtecScheduler::Scheduling_Anomaly_Set_var anomalies_hi_; RtecScheduler::RT_Info_Set_var infos_lo_; + RtecScheduler::Dependency_Set_var deps_lo_; RtecScheduler::Config_Info_Set_var configs_lo_; RtecScheduler::Scheduling_Anomaly_Set_var anomalies_lo_; diff --git a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp index eb83c4b51b6..c90b86978d3 100644 --- a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp +++ b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp @@ -1,3 +1,4 @@ + // $Id$ #include "ace/Sched_Params.h" @@ -46,6 +47,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[]) ACE_Scheduler_Factory::use_config (naming_context.in (), name); RtecScheduler::RT_Info_Set_var infos; + RtecScheduler::Dependency_Set_var deps; RtecScheduler::Config_Info_Set_var configs; RtecScheduler::Scheduling_Anomaly_Set_var anomalies; @@ -61,6 +63,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[]) // not define instances of _out types. RtecScheduler::RT_Info_Set_out infos_out (infos); + RtecScheduler::Dependency_Set_out deps_out (deps); RtecScheduler::Config_Info_Set_out configs_out (configs); RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies); ACE_Scheduler_Factory::server ()->compute_scheduling @@ -68,7 +71,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos_out, configs_out, anomalies_out + infos_out, deps_out, configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check #else /* ! __SUNPRO_CC */ ACE_Scheduler_Factory::server ()->compute_scheduling @@ -76,13 +79,14 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos.out (), configs.out (), anomalies.out () + infos.out (), deps.out (), configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check #endif /* ! __SUNPRO_CC */ ACE_TRY_CHECK; ACE_Scheduler_Factory::dump_schedule (infos.in (), + deps.in (), configs.in (), anomalies.in (), "Scheduler_Runtime.cpp"); diff --git a/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp b/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp index dee85a15df1..3e3e0f86321 100644 --- a/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp +++ b/TAO/orbsvcs/examples/RtEC/Kokyu/Service.cpp @@ -1,3 +1,4 @@ + // $Id$ #include "orbsvcs/Sched/Reconfig_Scheduler.h" @@ -29,7 +30,7 @@ inline RtecScheduler::Period_t time_val_to_period (const ACE_Time_Value &tv) int parse_args (int argc, char *argv[]); -typedef TAO_Reconfig_Scheduler<TAO_MUF_Reconfig_Sched_Strategy, TAO_SYNCH_MUTEX> RECONFIG_SCHED_TYPE; +typedef TAO_Reconfig_Scheduler<TAO_MUF_FAIR_Reconfig_Sched_Strategy, TAO_SYNCH_MUTEX> RECONFIG_SCHED_TYPE; int main (int argc, char* argv[]) @@ -332,6 +333,7 @@ main (int argc, char* argv[]) ACE_DEBUG ((LM_DEBUG, "Computing schedule\n")); RtecScheduler::RT_Info_Set_var infos; + RtecScheduler::Dependency_Set_var deps; RtecScheduler::Config_Info_Set_var configs; RtecScheduler::Scheduling_Anomaly_Set_var anomalies; @@ -349,6 +351,7 @@ main (int argc, char* argv[]) scheduler->compute_scheduling (min_os_priority, max_os_priority, infos.out (), + deps.out (), configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); @@ -356,6 +359,7 @@ main (int argc, char* argv[]) // Dump the schedule to a file.. ACE_Scheduler_Factory::dump_schedule (infos.in (), + deps.in (), configs.in (), anomalies.in (), "schedule.out"); diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp index b18259c6393..1aa6bbfd5e7 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp @@ -28,6 +28,10 @@ TAO_EC_Kokyu_Filter:: info_type_ (info_type) { this->adopt_child (this->body_); + +#if 1 //by VS +this->rt_info_computed_ = 1; +#endif } TAO_EC_Kokyu_Filter::~TAO_EC_Kokyu_Filter (void) @@ -149,40 +153,93 @@ TAO_EC_Kokyu_Filter::can_match (const RtecEventComm::EventHeader& header) const return this->body_->can_match (header); } +/* + Kokyu_Filter + | + |body + | + Con/DisjunctionFilter + | + |children + |* + Kokyu_Filter + | + |body + | + Type_Filter + +The entire hierarchy will have the same rt_info as the root. Only the root +rt_info will be part of the dependency graph in the scheduler. The root +rt_info will have a dependency on the consumer rt_info. + +<--- shows dependency (oneway) + +supplier1<-----| + con/disj_rt_info<-------consumer_rt_info +supplier2<-----| +*/ + int TAO_EC_Kokyu_Filter::add_dependencies (const RtecEventComm::EventHeader& header, const TAO_EC_QOS_Info &qos_info ACE_ENV_ARG_DECL) { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Entering EC_Kokyu_Filter::add_dependencies\n")); +#endif this->init_rt_info (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, + "this->rt_info_ = %d, header.type = %d, qos_info.rt_info = %d\n", + this->rt_info_, header.type, qos_info.rt_info)); +#endif + + //this call the add_dependencies() on con/disjunction filter int matches = this->body_->add_dependencies (header, qos_info - ACE_ENV_ARG_PARAMETER); + ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); if (matches != 0) { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Kokyu_Filter::matches != 0\n")); +#endif this->scheduler_->add_dependency (this->rt_info_, qos_info.rt_info, 1, - RtecBase::TWO_WAY_CALL + RtecBase::ONE_WAY_CALL ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); RtecScheduler::RT_Info_var info = this->scheduler_->get (qos_info.rt_info ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); - ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n", + ACE_DEBUG ((LM_DEBUG, "[%s][%d] ----> [%s][%d]\n", this->name_.c_str (), - info->entry_point.in ())); + this->rt_info_, + info->entry_point.in (), + qos_info.rt_info)); + } + else + { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Kokyu_Filter::matches == 0\n")); +#endif } +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "about to iterate thru children\n")); +#endif ChildrenIterator end = this->end (); for (ChildrenIterator i = this->begin (); i != end; ++i) { (*i)->add_dependencies (header, qos_info ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); } +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Exiting EC_Kokyu_Filter: add_dependencies\n")); +#endif return 0; } @@ -202,7 +259,7 @@ TAO_EC_Kokyu_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) if (this->rt_info_computed_) return; -#if 0 //ifdef'ed by VS +#if 1 //ifdef'ed from 1 to 0 by VS // Provide dummy values the scheduler will compute them based on the // dependencies and the fact that this is a DISJUNCTION. @@ -220,32 +277,6 @@ TAO_EC_Kokyu_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_CHECK; #endif //ifdef'ed by VS -#if 0 - ChildrenIterator end = this->end (); - for (ChildrenIterator i = this->begin (); i != end; ++i) - { - TAO_EC_Filter* filter = *i; - - TAO_EC_QOS_Info child; - filter->get_qos_info (child ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->scheduler_->add_dependency (this->rt_info_, - child.rt_info, 1, - RtecBase::TWO_WAY_CALL - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - RtecScheduler::RT_Info_var info = - this->scheduler_->get (child.rt_info ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n", - info->entry_point.in (), - this->name_.c_str ())); - - } -#endif /* 0 */ - #if 0 //ifdef changed from 1 to 0 by VS if (this->body_info_ != this->rt_info_) { diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h index b48d82927eb..55d64cdb2c9 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h @@ -26,6 +26,8 @@ #include "rtkokyu_event_export.h" #include "ace/SString.h" +//#define EC_KOKYU_LOGGING + /** * @class TAO_EC_Kokyu_Filter * @@ -83,7 +85,7 @@ public: ACE_ENV_ARG_DECL); virtual void get_qos_info (TAO_EC_QOS_Info& qos_info ACE_ENV_ARG_DECL); - + private: ACE_UNIMPLEMENTED_FUNC (TAO_EC_Kokyu_Filter (const TAO_EC_Kokyu_Filter&)) diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp index 283b7428fef..d708293dfb2 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp @@ -15,6 +15,23 @@ ACE_RCSID(Event, EC_Kokyu_Filter_Builder, "$Id$") +const char* designator (long dsgn) +{ + switch(dsgn) + { + case ACE_ES_GLOBAL_DESIGNATOR: return "GLOBAL"; + case ACE_ES_CONJUNCTION_DESIGNATOR: return "CONJ"; + case ACE_ES_DISJUNCTION_DESIGNATOR: return "DISJ"; + case ACE_ES_NEGATION_DESIGNATOR: return "NEG"; + case ACE_ES_LOGICAL_AND_DESIGNATOR: return "LOG_AND"; + case ACE_ES_BITMASK_DESIGNATOR: return "BITMASK"; + case ACE_ES_MASKED_TYPE_DESIGNATOR: return "MASKED_TYPE"; + case ACE_ES_NULL_DESIGNATOR: return "NULL"; + } + + return "---"; +} + TAO_EC_Kokyu_Filter_Builder::~TAO_EC_Kokyu_Filter_Builder (void) { } @@ -25,7 +42,11 @@ TAO_EC_Kokyu_Filter_Builder::build ( RtecEventChannelAdmin::ConsumerQOS& qos ACE_ENV_ARG_DECL) const { + CORBA::ULong i=0,found=0; CORBA::ULong pos = 0; + CORBA::Long npos = -1; + int establish_final_consumer_dependency=0; + CORBA::Object_var tmp = this->event_channel_->scheduler (); @@ -33,17 +54,127 @@ TAO_EC_Kokyu_Filter_Builder::build ( RtecScheduler::Scheduler::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); -#if 0 //by VS - // @@ How do we figure out which parent??? - RtecScheduler::handle_t parent_info = - scheduler->lookup ("Dispatching_Task-250000.us" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); +#ifdef EC_KOKYU_LOGGING + for (i=0; i<qos.dependencies.length (); ++i) + { + ACE_DEBUG ((LM_DEBUG, + "consumerqos[%d] event.header.type = %s," + "rt_info = %d\n", + i, + designator (qos.dependencies[i].event.header.type), + qos.dependencies[i].rt_info)); + } +#endif + + //find the first entry which is not a designator. We are going to + //assume that this entry will have the rt_info of the connecting + //consumer (ProxyPushSupplier), which is passed into this function. + for (i=0; !found && i<qos.dependencies.length (); ++i) + { + switch (qos.dependencies[i].event.header.type) + { + case ACE_ES_CONJUNCTION_DESIGNATOR: + case ACE_ES_DISJUNCTION_DESIGNATOR: + case ACE_ES_NEGATION_DESIGNATOR: + case ACE_ES_LOGICAL_AND_DESIGNATOR: + case ACE_ES_BITMASK_DESIGNATOR: + case ACE_ES_MASKED_TYPE_DESIGNATOR: + case ACE_ES_NULL_DESIGNATOR: + establish_final_consumer_dependency = 1; + continue; + + case ACE_ES_GLOBAL_DESIGNATOR: + case ACE_ES_EVENT_TIMEOUT: + case ACE_ES_EVENT_INTERVAL_TIMEOUT: + case ACE_ES_EVENT_DEADLINE_TIMEOUT: + continue; + + default: + npos = i; + found = 1; + break; + } + } + + ACE_CString final_consumer_rep_name; + RtecScheduler::handle_t h_final_consumer_rt_info = 0; + RtecScheduler::handle_t h_final_consumer_rep_rt_info = 0; + +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "consumer rt_info found in consumerqos[%d] \n", npos)); +#endif + + if (npos >= 0 && establish_final_consumer_dependency == 1) + { + //Hopefully this will have the final consumer's rt_info + h_final_consumer_rt_info = qos.dependencies[npos].rt_info; + +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "about to get rt_info = %d\n", + h_final_consumer_rep_rt_info)); +#endif + + RtecScheduler::RT_Info_var final_consumer_rt_info = + scheduler->get ( h_final_consumer_rt_info + ACE_ENV_ARG_PARAMETER); + + final_consumer_rep_name = final_consumer_rt_info->entry_point.in (); + final_consumer_rep_name += "#rep"; + +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "about to create consumer rep %s\n", + final_consumer_rep_name.c_str ())); #endif - return this->recursive_build (supplier, qos, pos, - scheduler.in (), - 0 //parent_info + //create an rt_info corresponding to this rep. + h_final_consumer_rep_rt_info = + scheduler->create (final_consumer_rep_name.c_str () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "consumer rep created\n")); +#endif + + } + + //We are passing the final consumer as the parent. The final + //consumer is the one which is connecting to the ProxyPushSupplier + //passed in to this function. + + TAO_EC_Filter* filter = + this->recursive_build (supplier, qos, pos, + scheduler.in (), + h_final_consumer_rep_rt_info //parent_info + ACE_ENV_ARG_PARAMETER); + +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, + "Filter_Builder::Verifying whether root filter" + " dependency can be established\n")); +#endif + + if (npos >= 0 && establish_final_consumer_dependency == 1) + { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, + "Filter_Builder::root filter dependency " + "can be established\n")); +#endif + TAO_EC_Kokyu_Filter* kokyu_filter = + ACE_dynamic_cast(TAO_EC_Kokyu_Filter*, filter); + + //add the dependency between the root in the filter hierarchy and + //the final consumer + TAO_EC_QOS_Info qos_info; + kokyu_filter->get_qos_info (qos_info); + + scheduler->add_dependency (h_final_consumer_rt_info, + qos_info.rt_info, + 1, + RtecBase::ONE_WAY_CALL ACE_ENV_ARG_PARAMETER); + } + return filter; } TAO_EC_Filter* @@ -57,8 +188,15 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build ( { const RtecEventComm::Event& e = qos.dependencies[pos].event; +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Filter_Builder::In recursive build\n")); +#endif + if (e.header.type == ACE_ES_CONJUNCTION_DESIGNATOR) { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Filter_Builder::Conjuction designator\n")); +#endif CORBA::ULong npos = pos; ACE_CString name; this->recursive_name (qos, npos, @@ -66,33 +204,32 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build ( ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); - RtecScheduler::handle_t rt_info = - scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - pos++; // Consume the designator + CORBA::ULong n = this->count_children (qos, pos); + RtecBase::handle_t conj_rt_info = parent_info; + TAO_EC_Filter** children; ACE_NEW_RETURN (children, TAO_EC_Filter*[n], 0); for (CORBA::ULong i = 0; i != n; ++i) { children[i] = this->recursive_build (supplier, qos, pos, scheduler, - rt_info - ACE_ENV_ARG_PARAMETER); + conj_rt_info + ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); } TAO_EC_Kokyu_Filter *filter; ACE_NEW_RETURN (filter, TAO_EC_Kokyu_Filter (name.c_str (), - rt_info, + conj_rt_info, scheduler, new TAO_EC_Conjunction_Filter(children, n), - rt_info, - parent_info, + conj_rt_info, + conj_rt_info, RtecScheduler::CONJUNCTION), 0); TAO_EC_QOS_Info qos_info; @@ -104,6 +241,9 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build ( else if (e.header.type == ACE_ES_DISJUNCTION_DESIGNATOR) { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Filter_Builder::Disjunction designator\n")); +#endif CORBA::ULong npos = pos; ACE_CString name; this->recursive_name (qos, npos, @@ -111,11 +251,10 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build ( ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); - RtecScheduler::handle_t rt_info = - scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - pos++; // Consume the designator + + RtecBase::handle_t disj_rt_info = parent_info; + CORBA::ULong n = this->count_children (qos, pos); TAO_EC_Filter** children; @@ -124,19 +263,19 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build ( { children[i] = this->recursive_build (supplier, qos, pos, scheduler, - rt_info + disj_rt_info ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); } TAO_EC_Kokyu_Filter *filter; ACE_NEW_RETURN (filter, TAO_EC_Kokyu_Filter (name.c_str (), - rt_info, + disj_rt_info, scheduler, new TAO_EC_Disjunction_Filter (children, n), - rt_info, - parent_info, + disj_rt_info, + disj_rt_info, RtecScheduler::DISJUNCTION), 0); @@ -146,107 +285,110 @@ TAO_EC_Kokyu_Filter_Builder::recursive_build ( ACE_CHECK_RETURN (0); return filter; } + else if (e.header.type == ACE_ES_EVENT_TIMEOUT + || e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT + || e.header.type == ACE_ES_EVENT_DEADLINE_TIMEOUT) + { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, "Filter_Builder::Timeout designator\n")); +#endif + // @@ We need a unique name for each timeout, assigned by the + // application? + char buf[64]; + + //get the rt_info for the timer consumer + RtecBase::handle_t h_consumer_rt_info = qos.dependencies[pos].rt_info; + + //build a unique name using the cosumer_rt_info + ACE_OS::sprintf (buf, "TIMEOUT:%umsec:%d", + ACE_static_cast (u_int, + (e.header.creation_time / 10000)), + h_consumer_rt_info); + ACE_CString name = buf; + + TAO_EC_QOS_Info qos_info; + qos_info.rt_info = + scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); + + // Convert the time to the proper units.... + RtecScheduler::Period_t period = + ACE_static_cast (RtecScheduler::Period_t, + e.header.creation_time); + +#if 1 //by VS original code replaced with this + RtecScheduler::RT_Info* consumer_rt_info_ptr; + + consumer_rt_info_ptr = scheduler->get (h_consumer_rt_info); + scheduler->set (qos_info.rt_info, + consumer_rt_info_ptr->criticality, + 0, // worst_cast_execution_time + 0, // typical_cast_execution_time + 0, // cached_cast_execution_time + period, + consumer_rt_info_ptr->importance, + 0, // quantum + 1, // threads + RtecScheduler::OPERATION + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + scheduler->add_dependency (qos_info.rt_info, + h_consumer_rt_info, + 1, + RtecBase::TWO_WAY_CALL + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); +#endif //by VS + + pos++; + return new TAO_EC_Timeout_Filter (this->event_channel_, + supplier, + qos_info, + e.header.type, + e.header.creation_time); + } + #if 1 //added by VS else if (e.header.type == ACE_ES_GLOBAL_DESIGNATOR) { - CORBA::ULong npos = pos+1; - const RtecEventComm::Event& e = qos.dependencies[npos].event; - - RtecScheduler::handle_t body_info = qos.dependencies[npos].rt_info; - - RtecScheduler::RT_Info_var info = - scheduler->get (body_info ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ACE_CString name = info->entry_point.in (); - - TAO_EC_Kokyu_Filter *filter; - ACE_NEW_RETURN (filter, - TAO_EC_Kokyu_Filter (name.c_str (), - body_info, - scheduler, - new TAO_EC_Type_Filter (e.header), - body_info, - 0, - RtecScheduler::OPERATION), - 0); - - return filter; + pos++; + return this->recursive_build (supplier, qos, pos, + scheduler, + parent_info + ACE_ENV_ARG_PARAMETER); + } + else + { +#ifdef EC_KOKYU_LOGGING + ACE_DEBUG ((LM_DEBUG, + "Kokyu_Filter_Builder::No designator for this entry. " + "Must be a body\n")); +#endif } #endif - else if (e.header.type == ACE_ES_EVENT_TIMEOUT - || e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT - || e.header.type == ACE_ES_EVENT_DEADLINE_TIMEOUT) + //probably because of a global designator, the parent_info could be 0. + if (parent_info == 0) { - pos++; - - // @@ We need a unique name for each timeout, assigned by the - // application? - char buf[64]; - ACE_OS::sprintf (buf, "TIMEOUT:%u", - ACE_static_cast (u_int, - (e.header.creation_time / 10000))); - ACE_CString name = buf; - - TAO_EC_QOS_Info qos_info; - qos_info.rt_info = - scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - // Convert the time to the proper units.... - RtecScheduler::Period_t period = - ACE_static_cast (RtecScheduler::Period_t, - e.header.creation_time / 10); - - scheduler->set (qos_info.rt_info, - RtecScheduler::VERY_LOW_CRITICALITY, - 0, // worst_cast_execution_time - 0, // typical_cast_execution_time - 0, // cached_cast_execution_time - period, - RtecScheduler::VERY_LOW_IMPORTANCE, - 0, // quantum - 1, // threads - RtecScheduler::OPERATION - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - scheduler->add_dependency (qos_info.rt_info, - parent_info, - 1, - RtecBase::TWO_WAY_CALL - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return new TAO_EC_Timeout_Filter (this->event_channel_, - supplier, - qos_info, - e.header.type, - e.header.creation_time); + //In this case, the parent_info is the same as the one supplied + //in the consumer qos. + parent_info = qos.dependencies[pos].rt_info; } - RtecScheduler::handle_t body_info = qos.dependencies[pos].rt_info; - RtecScheduler::RT_Info_var info = - scheduler->get (body_info ACE_ENV_ARG_PARAMETER); + scheduler->get (parent_info ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (0); ACE_CString name = info->entry_point.in (); - name += "#rep"; - - RtecScheduler::handle_t rt_info = - scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); pos++; TAO_EC_Kokyu_Filter *filter; ACE_NEW_RETURN (filter, TAO_EC_Kokyu_Filter (name.c_str (), - rt_info, + parent_info, scheduler, new TAO_EC_Type_Filter (e.header), - body_info, + parent_info, parent_info, RtecScheduler::OPERATION), 0); @@ -324,7 +466,7 @@ TAO_EC_Kokyu_Filter_Builder:: recursive_name ( pos++; char buf[64]; - ACE_OS::sprintf (buf, "TIMEOUT:%u", + ACE_OS::sprintf (buf, "TIMEOUT:%umsec", ACE_static_cast (u_int, (e.header.creation_time / 10000))); name = buf; diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp index bd1d0dd9f46..dd857c059e8 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp @@ -22,10 +22,9 @@ TAO_EC_Kokyu_Scheduling::add_proxy_supplier_dependencies ( TAO_EC_ProxyPushConsumer *consumer ACE_ENV_ARG_DECL) { - ACE_DEBUG ((LM_DEBUG, "add_proxy_supplier_dependencies - %x %x\n", - supplier, consumer)); const RtecEventChannelAdmin::SupplierQOS& qos = consumer->publications (); + for (CORBA::ULong i = 0; i < qos.publications.length (); ++i) { const RtecEventComm::EventHeader &header = diff --git a/TAO/orbsvcs/orbsvcs/Makefile.RTSched b/TAO/orbsvcs/orbsvcs/Makefile.RTSched index 7c5364801b1..d24ef9089e7 100644 --- a/TAO/orbsvcs/orbsvcs/Makefile.RTSched +++ b/TAO/orbsvcs/orbsvcs/Makefile.RTSched @@ -33,7 +33,7 @@ override TAO_IDLFLAGS += \ -Wb,post_include=ace/post.h -IDL_FILES += RtecScheduler +IDL_FILES += RtecScheduler RtecBase CPP_SRCS += \ Scheduler_Factory \ diff --git a/TAO/orbsvcs/orbsvcs/RTSched.bor b/TAO/orbsvcs/orbsvcs/RTSched.bor index f0c141b4e3a..69f48913f0c 100644 --- a/TAO/orbsvcs/orbsvcs/RTSched.bor +++ b/TAO/orbsvcs/orbsvcs/RTSched.bor @@ -19,6 +19,8 @@ OBJFILES = \ $(OBJDIR)\Reconfig_Scheduler.obj \ $(OBJDIR)\RtecSchedulerC.obj \ $(OBJDIR)\RtecSchedulerS.obj \ + $(OBJDIR)\RtecBaseC.obj \ + $(OBJDIR)\RtecBaseS.obj \ $(OBJDIR)\Runtime_Scheduler.obj \ $(OBJDIR)\SchedEntry.obj \ $(OBJDIR)\Scheduler.obj \ diff --git a/TAO/orbsvcs/orbsvcs/RTSched.dsp b/TAO/orbsvcs/orbsvcs/RTSched.dsp index 646708c6bb9..28cf2d1d6ae 100644 --- a/TAO/orbsvcs/orbsvcs/RTSched.dsp +++ b/TAO/orbsvcs/orbsvcs/RTSched.dsp @@ -184,6 +184,15 @@ SOURCE=.\RtecSchedulerS.cpp # End Source File
# Begin Source File
+SOURCE=.\RtecBaseC.cpp
+# ADD CPP /GR
+# End Source File
+# Begin Source File
+
+SOURCE=.\RtecBaseS.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Runtime_Scheduler.cpp
# End Source File
# Begin Source File
diff --git a/TAO/orbsvcs/orbsvcs/RTSched.mpc b/TAO/orbsvcs/orbsvcs/RTSched.mpc index 077f15ffe9b..1175391a2ee 100644 --- a/TAO/orbsvcs/orbsvcs/RTSched.mpc +++ b/TAO/orbsvcs/orbsvcs/RTSched.mpc @@ -14,6 +14,8 @@ project(RTSched) : orbsvcslib, core, naming, svc_utils, portableserver { Sched { RtecSchedulerC.cpp RtecSchedulerS.cpp + RtecBaseC.cpp + RtecBaseS.cpp Scheduler_Factory.cpp Runtime_Scheduler.cpp Scheduler_Utilities.cpp diff --git a/TAO/orbsvcs/orbsvcs/RtecBase.idl b/TAO/orbsvcs/orbsvcs/RtecBase.idl index bf1e22d0b49..193e6f65299 100644 --- a/TAO/orbsvcs/orbsvcs/RtecBase.idl +++ b/TAO/orbsvcs/orbsvcs/RtecBase.idl @@ -1,9 +1,10 @@ +// $Id$ /** * @file RtecBase.idl * * @brief Define the RtecBase module * - * $Id$ + * RtecBase.idl,v 1.2 2001/09/17 20:50:34 coryan Exp * * @author Carlos O'Ryan <coryan@uci.edu> */ @@ -51,6 +52,15 @@ module RtecBase */ typedef long handle_t; + enum Dependency_Enabled_Type_t + // Specify whether a dependency is enabled, disabled, or + // non-volatile (enabled + cannot be disabled automatically). + { + DEPENDENCY_DISABLED, + DEPENDENCY_ENABLED, + DEPENDENCY_NON_VOLATILE + }; + /// Define dependencies between two RT_Infos struct Dependency_Info { @@ -62,6 +72,11 @@ module RtecBase /// Dependency handle_t rt_info; + + handle_t rt_info_depended_on; + Dependency_Enabled_Type_t enabled; + // Notice the reference to the RT_Info we + // depend on. }; /// Helper typedef to define the OS priority. diff --git a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl index 4b47e58aefc..535ee6eeb96 100644 --- a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl +++ b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl @@ -15,6 +15,10 @@ module RtecScheduler typedef long Period_t; // 100 nanoseconds + typedef long Threads_t; + + typedef sequence<Period_t> Period_Set; + enum Criticality_t // Defines the criticality of the operation. // For use with Dynamic Scheduler. @@ -48,8 +52,30 @@ module RtecScheduler REMOTE_DEPENDANT }; + typedef RtecBase::Dependency_Enabled_Type_t Dependency_Enabled_Type_t; typedef RtecBase::Dependency_Type_t Dependency_Type_t; + + enum RT_Info_Enabled_Type_t + // Specify whether an RT_Info is enabled, disabled, or + // non-volatile (enabled + cannot be disabled automatically). + { + RT_INFO_DISABLED, + RT_INFO_ENABLED, + RT_INFO_NON_VOLATILE + }; + typedef RtecBase::handle_t handle_t; + // RT_Info's are assigned per-application + // unique identifiers. + + struct RT_Info_Enable_State_Pair + { + handle_t handle; + RT_Info_Enabled_Type_t enabled; + }; + + typedef sequence<RT_Info_Enable_State_Pair> RT_Info_Enable_State_Pair_Set; + typedef RtecBase::Dependency_Info Dependency_Info; typedef sequence<Dependency_Info> Dependency_Set; @@ -99,7 +125,7 @@ module RtecScheduler // The number of internal threads contained by // the operation. - long threads; + Threads_t threads; // The following attributes are defined by // the Scheduler once the off-line schedule @@ -120,6 +146,8 @@ module RtecScheduler // Info_Type Info_Type_t info_type; + // Whether or not the RT_Info is enabled. + RT_Info_Enabled_Type_t enabled; // Token reserved for the scheduler's internal use: // information placed here from outside the scheduler @@ -154,6 +182,9 @@ module RtecScheduler // type of dispatching queue Dispatching_Type_t dispatching_type; + + // Set of timer periods associated with the priority level + Period_Set timer_periods; }; typedef sequence<Config_Info> Config_Info_Set; @@ -272,13 +303,53 @@ module RtecScheduler in Period_t period, in Importance_t importance, in Quantum_t quantum, - in long threads, + in Threads_t threads, in Info_Type_t info_type) raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE); - // Set the attributes of an RT_Info. + // Set the input attributes of an RT_Info. Multiple calls + // to set with the same handle will result in registration + // of different tuples for the same RT_Info, e.g., for multi-rate + // admission control. + // Notice that some values may not be modified (like priority). + // Criticality and Info_Type are only used with the Dynamic Scheduler. + + void reset (in handle_t handle, + in Criticality_t criticality, + in Time wc_time, + in Time typical_time, + in Time cached_time, + in Period_t period, + in Importance_t importance, + in Quantum_t quantum, + in Threads_t threads, + in Info_Type_t info_type) + raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE); + // Removes previous tuples and resets the attributes of an RT_Info. // Notice that some values may not be modified (like priority). // Criticality and Info_Type are only used with the Dynamic Scheduler. + + void set_seq (in RT_Info_Set infos) + raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE); + // Set the input attributes of an RT_Info. Tuples for the passed + // sequence elements will be concatenated with the previous + // tuples for the same RT_Infos, e.g., for multi-rate admission control. + // Notice that some values may not be modified (like priority). + + void reset_seq (in RT_Info_Set infos) + raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE); + // Reset the input attributes of an RT_Info. Tuples for the passed + // sequence elements will be replace the previous + // tuples for the same RT_Infos, e.g., for multi-rate admission control. + // Notice that some values may not be modified (like priority). + + void replace_seq (in RT_Info_Set infos) + raises (UNKNOWN_TASK, INTERNAL, SYNCHRONIZATION_FAILURE); + // Replace all RT_Infos, setting characteristics of the RT_Infos + // corresponding to the passed handles. All other RT_Infos are reset + // to their uninitialized values, i.e., the same they have just after + // the create call. + void add_dependency (in handle_t handle, in handle_t dependency, in long number_of_calls, @@ -287,6 +358,39 @@ module RtecScheduler // Adds <dependency> to <handle>. // Dependency_Type_t is only used with the Dynamic Scheduler. + void remove_dependency (in handle_t handle, + in handle_t dependency, + in long number_of_calls, + in Dependency_Type_t dependency_type) + raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK); + // Removes <dependency> from <handle>. Raises UNKNOWN_TASK + // if no matching dependency is found. + + void set_dependency_enable_state (in handle_t handle, + in handle_t dependency, + in long number_of_calls, + in Dependency_Type_t dependency_type, + in Dependency_Enabled_Type_t enabled) + raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK); + // Enables or disables <dependency> on <handle>. Raises UNKNOWN_TASK + // if no matching dependency is found. + + void set_dependency_enable_state_seq (in Dependency_Set dependencies) + raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK); + // Sets the enable state of each dependency in the sequence. Raises + // UNKNOWN_TASK if no matching dependency is found. + + void set_rt_info_enable_state (in handle_t handle, + in RT_Info_Enabled_Type_t enabled) + raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK); + // Enables or disables the RT_Info. Raises UNKNOWN_TASK + // if no matching RT_Info is found. + + void set_rt_info_enable_state_seq (in RT_Info_Enable_State_Pair_Set pair_set) + raises (SYNCHRONIZATION_FAILURE, UNKNOWN_TASK); + // Enables or disables each rt_info in the passed set. Raises UNKNOWN_TASK + // if no matching dependency is found. + void priority (in handle_t handle, out OS_Priority o_priority, out Preemption_Subpriority_t p_subpriority, @@ -307,6 +411,7 @@ module RtecScheduler void compute_scheduling (in long minimum_priority, in long maximum_priority, out RT_Info_Set infos, + out Dependency_Set dependencies, out Config_Info_Set configs, out Scheduling_Anomaly_Set anomalies) raises (UTILIZATION_BOUND_EXCEEDED, @@ -321,24 +426,35 @@ module RtecScheduler // dumped into a C++ file for compilation and even faster (static) // lookup. - // TODO: The dependencies field can be removed from the RT_Info - // and made part of the secrets of "Application", adding the - // following to satisfy curious clients: - // - // struct Dependency { - // long number_of_calls; - // Dependency_Type_t dependency_type; - // handle_t dependency; - // }; - // typedef sequence<Dependency> Dependency_Set; - // - // Dependency_Set dependencies (in handle_t handle) - // raises (UNKNOWN_TASK); - // Returns the list of dependencies - // - // long number_of_dependencies (in handle_t handle) - // raises (UNKNOWN_TASK); - // Returns the number of dependencies. + + void recompute_scheduling (in long minimum_priority, + in long maximum_priority, + out Scheduling_Anomaly_Set anomalies) + raises (UTILIZATION_BOUND_EXCEEDED, + SYNCHRONIZATION_FAILURE, + INSUFFICIENT_THREAD_PRIORITY_LEVELS, + TASK_COUNT_MISMATCH, + INTERNAL, + DUPLICATE_NAME); + // Recomputes the scheduling priorities, etc. + + void get_rt_info_set (out RT_Info_Set infos) + raises (SYNCHRONIZATION_FAILURE, + INTERNAL); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + void get_dependency_set (out Dependency_Set dependencies) + raises (SYNCHRONIZATION_FAILURE, + INTERNAL); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + void get_config_info_set (out Config_Info_Set configs) + raises (SYNCHRONIZATION_FAILURE, + INTERNAL); + // Returns the set of config_infos, describing the appropriate + // number, types, and priority levels for the dispatching lanes. void dispatch_configuration (in Preemption_Priority_t p_priority, out OS_Priority o_priority, @@ -348,7 +464,7 @@ module RtecScheduler UNKNOWN_PRIORITY_LEVEL); // Returns the thread priority and dispatching type assigned // to the dispatching priority level that was passed in. This - // information is used to configure the queues through wich + // information can be used to configure the queues through which // the scheduled operations are to be dispatched. // // If the schedule has not been computed: diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp index e3e7fbf48e0..a3b32ce0624 100644 --- a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp +++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp @@ -139,6 +139,93 @@ ACE_Runtime_Scheduler::set (RtecScheduler::handle_t handle, } +void +ACE_Runtime_Scheduler::reset (RtecScheduler::handle_t handle, + RtecScheduler::Criticality_t criticality, + RtecScheduler::Time time, + RtecScheduler::Time typical_time, + RtecScheduler::Time cached_time, + RtecScheduler::Period_t period, + RtecScheduler::Importance_t importance, + RtecScheduler::Quantum_t quantum, + CORBA::Long threads, + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)) +{ + // Just go ahead and call the set method + this->set (handle, criticality, time, typical_time, cached_time, + period, importance, quantum, threads, info_type ACE_ENV_ARG_PARAMETER ); +} + + +void +ACE_Runtime_Scheduler::set_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ + for (u_int i = 0; i < infos.length (); ++i) + { + // Call the internal set method. + this->set (infos[i].handle, + infos[i].criticality, + infos[i].worst_case_execution_time, + infos[i].typical_execution_time, + infos[i].cached_execution_time, + infos[i].period, + infos[i].importance, + infos[i].quantum, + infos[i].threads, + infos[i].info_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} + +void +ACE_Runtime_Scheduler::replace_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ + for (u_int i = 0; i < infos.length (); ++i) + { + // Call the internal set method. + this->set (infos[i].handle, + infos[i].criticality, + infos[i].worst_case_execution_time, + infos[i].typical_execution_time, + infos[i].cached_execution_time, + infos[i].period, + infos[i].importance, + infos[i].quantum, + infos[i].threads, + infos[i].info_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} + + +void +ACE_Runtime_Scheduler::reset_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ + // Just call the set sequence method + this->set_seq (infos ACE_ENV_ARG_PARAMETER); +} + + // Returns the priority and subpriority values assigned to an RT_Info, // based on its handle. @@ -222,6 +309,75 @@ ACE_Runtime_Scheduler::add_dependency (RtecScheduler::handle_t handle, #endif } + +// In the reconfig scheduler, this method removes a dependency between +// two RT_Infos. In the run time scheduler, this is a no-op. + +void +ACE_Runtime_Scheduler::remove_dependency (RtecScheduler::handle_t handle, + RtecScheduler::handle_t /* dependency */, + CORBA::Long /* number_of_calls */, + RtecScheduler::Dependency_Type_t /* dependency_type */ + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)) +{ + if (handle <= 0 || handle > entry_count_) + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); +} + + +// In the reconfig scheduler, this method enables a dependency between +// two RT_Infos. In the run time scheduler, this is a no-op. + +void +ACE_Runtime_Scheduler::set_dependency_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::handle_t /* dependency */, + CORBA::Long /* number_of_calls */, + RtecScheduler::Dependency_Type_t /* dependency_type */, + RtecScheduler::Dependency_Enabled_Type_t /* enabled */ + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)) +{ + if (handle <= 0 || handle > entry_count_) + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); +} + + +// In the reconfig scheduler, this method enables or disables an RT_Info. +// In the run time scheduler, this is a no-op. + +void +ACE_Runtime_Scheduler::set_rt_info_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::RT_Info_Enabled_Type_t /* enabled */ + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)) +{ + if (handle <= 0 || handle > entry_count_) + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); +} + + +virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) + // This method sets the enable state of a sequence of dependencies. +{ +} + +virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); +// This method enables or disables a sequence of RT_Infos. +{ +} + // In the config run scheduler, this method causes scheduling information // to be computed for all registered RT_Infos. In the run time scheduler, // this is a no-op. @@ -230,6 +386,7 @@ void ACE_Runtime_Scheduler::compute_scheduling (CORBA::Long /* minimum_priority */, CORBA::Long /* maximum_priority */, RtecScheduler::RT_Info_Set_out /* infos */, + RtecScheduler::Dependency_Set_out /*dependencies */, RtecScheduler::Config_Info_Set_out /* configs */, RtecScheduler::Scheduling_Anomaly_Set_out /* anomalies */ ACE_ENV_ARG_DECL_NOT_USED) @@ -244,6 +401,81 @@ ACE_Runtime_Scheduler::compute_scheduling (CORBA::Long /* minimum_priority */, return; } +// Recomputes the scheduling priorities, etc. + +void +ACE_Runtime_Scheduler::recompute_scheduling (CORBA::Long minimum_priority, + CORBA::Long maximum_priority, + RtecScheduler::Scheduling_Anomaly_Set_out anomalies + ACE_ENV_ARG_DECL) + + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UTILIZATION_BOUND_EXCEEDED, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, + RtecScheduler::TASK_COUNT_MISMATCH, + RtecScheduler::INTERNAL, + RtecScheduler::DUPLICATE_NAME)) +{ + // TODO: Right now just do nothing. + ACE_UNUSED_ARG(minimum_priority); + ACE_UNUSED_ARG(maximum_priority); + ACE_UNUSED_ARG(anomalies); + + return; +} + + +// Returns the set of rt_infos, with their assigned priorities (as +// of the last schedule re-computation). + +void +ACE_Runtime_Scheduler::get_rt_info_set (RtecScheduler::RT_Info_Set_out infos + ACE_ENV_ARG_DECL) + + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +{ + // TODO: Right now just do nothing. + ACE_UNUSED_ARG(infos); + return; +} + + +// Returns the set of rt_infos, with their assigned priorities (as +// of the last schedule re-computation). + +void +ACE_Runtime_Scheduler::get_dependency_set (RtecScheduler::Dependency_Set_out dependencies + ACE_ENV_ARG_DECL) + + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +{ + // TODO: Right now just do nothing. + ACE_UNUSED_ARG(dependencies); + return; +} + + +// Returns the set of config_infos, describing the appropriate +// number, types, and priority levels for the dispatching lanes. + +void +ACE_Runtime_Scheduler::get_config_info_set (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +{ + // TODO: Right now just do nothing. + ACE_UNUSED_ARG(configs); + return; +} + + // Provides the thread priority and queue type for the given priority // level. diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h index 71c5761f988..b2d5ed34061 100644 --- a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h +++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h @@ -74,6 +74,48 @@ public: RtecScheduler::UNKNOWN_TASK)); // Set characteristics of the RT_Info corresponding to the passed handle. + virtual void reset (RtecScheduler::handle_t handle, + RtecScheduler::Criticality_t criticality, + RtecScheduler::Time time, + RtecScheduler::Time typical_time, + RtecScheduler::Time cached_time, + RtecScheduler::Period_t period, + RtecScheduler::Importance_t importance, + RtecScheduler::Quantum_t quantum, + CORBA::Long threads, + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)); + // Reset characteristics of the RT_Info corresponding to the passed handle. + + virtual void set_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Set characteristics of the RT_Infos corresponding to the passed handles. + // Tuples are added in the case of existing and/or multiple definitions. + + virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Replace characteristics of the RT_Infos corresponding to the + // passed handles. + + virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Reset characteristics of the RT_Infos corresponding to the passed handles. + // Tuples are replaced in the case of existing and/or multiple definitions. + virtual void priority (RtecScheduler::handle_t handle, RtecScheduler::OS_Priority& o_priority, RtecScheduler::Preemption_Subpriority_t& p_subpriority, @@ -106,9 +148,53 @@ public: // In the config run scheduler, this method registers a dependency between // two RT_Infos. In the run time scheduler, this is a no-op. + virtual void remove_dependency (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)); + // In the reconfig scheduler, this method removes a dependency between + // two RT_Infos. In the run time scheduler, this is a no-op. + + virtual void set_dependency_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)); + // In the reconfig scheduler, this method (re)enabes a dependency between + // two RT_Infos. In the run time scheduler, this is a no-op. + + virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::RT_Info_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK)); + // In the reconfig scheduler, enables or disables an RT_Info. + // In the run time scheduler, this is a no-op. + + virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method sets the enable state of a sequence of dependencies. + + virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method enables or disables a sequence of RT_Infos. + virtual void compute_scheduling (CORBA::Long minimum_priority, CORBA::Long maximum_priority, RtecScheduler::RT_Info_Set_out infos, + RtecScheduler::Dependency_Set_out deps, RtecScheduler::Config_Info_Set_out configs, RtecScheduler::Scheduling_Anomaly_Set_out anomalies ACE_ENV_ARG_DECL) @@ -120,6 +206,43 @@ public: // to be computed for all registered RT_Infos. In the run time scheduler, // this is a no-op. + virtual void recompute_scheduling (CORBA::Long minimum_priority, + CORBA::Long maximum_priority, + RtecScheduler::Scheduling_Anomaly_Set_out anomalies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UTILIZATION_BOUND_EXCEEDED, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, + RtecScheduler::TASK_COUNT_MISMATCH, + RtecScheduler::INTERNAL, + RtecScheduler::DUPLICATE_NAME)); + // Recomputes the scheduling priorities, etc. + + virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of config_infos, describing the appropriate + // number, types, and priority levels for the dispatching lanes. + virtual void dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority, RtecScheduler::OS_Priority& o_priority, RtecScheduler::Dispatching_Type_t & d_type diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp index f6da5e721a3..6c98a2db43c 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp @@ -181,6 +181,7 @@ void ACE_Config_Scheduler::priority (RtecScheduler::handle_t handle, RtecScheduler::UNKNOWN_TASK, RtecScheduler::NOT_SCHEDULED)) { + if (impl->priority (handle, priority, p_subpriority, p_priority) == -1) { ACE_ERROR ((LM_ERROR, @@ -212,6 +213,7 @@ void ACE_Config_Scheduler::add_dependency (RtecScheduler::handle_t handle, ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::UNKNOWN_TASK)) { + RtecScheduler::RT_Info* rt_info = 0; switch (impl->lookup_rt_info (handle, rt_info)) { @@ -242,6 +244,7 @@ void ACE_Config_Scheduler::add_dependency (RtecScheduler::handle_t handle, void ACE_Config_Scheduler::compute_scheduling (CORBA::Long minimum_priority, CORBA::Long maximum_priority, RtecScheduler::RT_Info_Set_out infos, + RtecScheduler::Dependency_Set_out dependencies, RtecScheduler::Config_Info_Set_out configs, RtecScheduler::Scheduling_Anomaly_Set_out anomalies ACE_ENV_ARG_DECL_NOT_USED) @@ -250,6 +253,7 @@ void ACE_Config_Scheduler::compute_scheduling (CORBA::Long minimum_priority, RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, RtecScheduler::TASK_COUNT_MISMATCH)) { + // Initialize the scheduler implementation. impl->init (minimum_priority, maximum_priority); @@ -438,8 +442,10 @@ void ACE_Config_Scheduler::compute_scheduling (CORBA::Long minimum_priority, ACE_DEBUG ((LM_DEBUG, "Schedule prepared.\n")); ACE_DEBUG ((LM_DEBUG, "Dumping to stdout.\n")); - ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), *(configs.ptr()), - *(anomalies.ptr()), 0); + ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), + *(dependencies.ptr()), + *(configs.ptr()), + *(anomalies.ptr()), 0); ACE_DEBUG ((LM_DEBUG, "Dump done.\n")); } @@ -452,6 +458,7 @@ void ACE_Config_Scheduler::dispatch_configuration (RtecScheduler::Preemption_Pri RtecScheduler::NOT_SCHEDULED, RtecScheduler::UNKNOWN_PRIORITY_LEVEL)) { + if (impl->dispatch_configuration (p_priority, priority, d_type) == -1) { ACE_ERROR ((LM_ERROR, @@ -468,6 +475,7 @@ ACE_Config_Scheduler::last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::NOT_SCHEDULED)) { + RtecScheduler::Preemption_Priority_t priority = impl->minimum_priority_queue (); if (priority < 0) @@ -496,3 +504,167 @@ ACE_Config_Scheduler::get_config_infos (RtecScheduler::Config_Info_Set_out confi //for now, this function is unimplemented return; } + +virtual void reset (RtecScheduler::handle_t handle, + RtecScheduler::Criticality_t criticality, + RtecScheduler::Time time, + RtecScheduler::Time typical_time, + RtecScheduler::Time cached_time, + RtecScheduler::Period_t period, + RtecScheduler::Importance_t importance, + RtecScheduler::Quantum_t quantum, + CORBA::Long threads, + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void set_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +// Set characteristics of the RT_Infos corresponding to the passed handles. +// Tuples are added in the case of existing and/or multiple definitions. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +// Reset characteristics of the RT_Infos corresponding to the passed handles. +// Tuples are replaced in the case of existing and/or multiple definitions. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +// Replace all RT_Infos, resetting characteristics of the RT_Infos +// corresponding to the passed handles. All other RT_Infos are +// reset to their uninitialized values, i.e., the same they have +// just after the create call. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void remove_dependency (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +// This method removes a dependency between two RT_Infos. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void set_dependency_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +// This method sets the enable state of a dependency between two RT_Infos. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +// This method sets the enable state of a sequence of dependencies. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::RT_Info_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +// This method enables or disables an RT_Info. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +// This method enables or disables a sequence of RT_Infos. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void recompute_scheduling (CORBA::Long minimum_priority, + CORBA::Long maximum_priority, + RtecScheduler::Scheduling_Anomaly_Set_out anomalies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UTILIZATION_BOUND_EXCEEDED, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, + RtecScheduler::TASK_COUNT_MISMATCH, + RtecScheduler::INTERNAL, + RtecScheduler::DUPLICATE_NAME)) +// Recomputes the scheduling priorities, etc. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +// Returns the set of rt_infos, with their assigned priorities (as +// of the last schedule re-computation). +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +// Returns the set of rt_infos, with their assigned priorities (as +// of the last schedule re-computation). +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} + +virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +// Returns the set of config_infos, describing the appropriate +// number, types, and priority levels for the dispatching lanes. +{ + ACE_THROW (CORBA::NO_IMPLEMENT ()); +} diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h index e0278a40462..1fc887b8fb5 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h @@ -90,6 +90,7 @@ public: virtual void compute_scheduling (CORBA::Long minimum_priority, CORBA::Long maximum_priority, RtecScheduler::RT_Info_Set_out infos, + RtecScheduler::Dependency_Set_out dependencies, RtecScheduler::Config_Info_Set_out configs, RtecScheduler::Scheduling_Anomaly_Set_out anomalies ACE_ENV_ARG_DECL) @@ -125,6 +126,132 @@ public: RtecScheduler::NOT_SCHEDULED)); // Provides the set of Config_Infos associated with the current schedule. + virtual void reset (RtecScheduler::handle_t handle, + RtecScheduler::Criticality_t criticality, + RtecScheduler::Time time, + RtecScheduler::Time typical_time, + RtecScheduler::Time cached_time, + RtecScheduler::Period_t period, + RtecScheduler::Importance_t importance, + RtecScheduler::Quantum_t quantum, + CORBA::Long threads, + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Reset characteristics of the RT_Info corresponding to the passed handle. + + virtual void set_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Set characteristics of the RT_Infos corresponding to the passed handles. + // Tuples are added in the case of existing and/or multiple definitions. + + virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Reset characteristics of the RT_Infos corresponding to the passed handles. + // Tuples are replaced in the case of existing and/or multiple definitions. + + virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Replace all RT_Infos, resetting characteristics of the RT_Infos + // corresponding to the passed handles. All other RT_Infos are + // reset to their uninitialized values, i.e., the same they have + // just after the create call. + + virtual void remove_dependency (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method removes a dependency between two RT_Infos. + + virtual void set_dependency_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method sets the enable state of a dependency between two RT_Infos. + + virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method sets the enable state of a sequence of dependencies. + + virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::RT_Info_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method enables or disables an RT_Info. + + virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method enables or disables a sequence of RT_Infos. + + virtual void recompute_scheduling (CORBA::Long minimum_priority, + CORBA::Long maximum_priority, + RtecScheduler::Scheduling_Anomaly_Set_out anomalies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UTILIZATION_BOUND_EXCEEDED, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, + RtecScheduler::TASK_COUNT_MISMATCH, + RtecScheduler::INTERNAL, + RtecScheduler::DUPLICATE_NAME)); + // Recomputes the scheduling priorities, etc. + + virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of config_infos, describing the appropriate + // number, types, and priority levels for the dispatching lanes. + private: diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp index 25c6cca9bd0..4ad5e2c850f 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp @@ -34,6 +34,197 @@ ACE_RCSID (Sched, Reconfig_Sched_Utils, "$Id$") +/////////////////////////// +// struct TAO_RT_Info_Ex // +/////////////////////////// + +// Default Constructor. + +TAO_RT_Info_Ex::TAO_RT_Info_Ex () +{ + // Note: the entry_point string takes care of itself. + handle = 0; + criticality = RtecScheduler::VERY_LOW_CRITICALITY; + worst_case_execution_time = 0; + typical_execution_time = 0; + cached_execution_time = 0; + period = 0; + importance = RtecScheduler::VERY_LOW_IMPORTANCE; + quantum = 0; + threads = 0; + info_type = RtecScheduler::OPERATION; + priority = 0; + preemption_subpriority = 0; + preemption_priority = 0; + enabled = RtecScheduler::RT_INFO_ENABLED; + volatile_token = 0; +} + + +// Constructor from an RT_Info +// (Also serves as a copy constructor) + +TAO_RT_Info_Ex::TAO_RT_Info_Ex (const RtecScheduler::RT_Info &info) +{ + this->entry_point = info.entry_point; + this->handle = info.handle; + this->criticality = info.criticality; + this->worst_case_execution_time = info.worst_case_execution_time; + this->typical_execution_time = info.typical_execution_time; + this->cached_execution_time = info.cached_execution_time; + this->period = info.period; + this->importance = info.importance; + this->quantum = info.quantum; + this->threads = info.threads; + this->info_type = info.info_type; + this->priority = info.priority; + this->preemption_subpriority = info.preemption_subpriority; + this->preemption_priority = info.preemption_priority; + this->enabled = info.enabled; // TODO- rethink? + this->volatile_token = info.volatile_token; +} + + +// Destructor. +TAO_RT_Info_Ex::~TAO_RT_Info_Ex () +{ +} + + +// Assignment operator with an RT_Info on the RHS. + +void +TAO_RT_Info_Ex::operator = (const RtecScheduler::RT_Info &info) +{ + // IMPORTANT: we don't copy the name or the handle or the output + // attributes or the volatile token (entry pointer) or the valid + // flag. These can only be copied in the copy ctor at + // initialization. + + criticality = info.criticality; + worst_case_execution_time = info.worst_case_execution_time; + typical_execution_time = info.typical_execution_time; + cached_execution_time = info.cached_execution_time; + period = info.period; + importance = info.importance; + quantum = info.quantum; + threads = info.threads; + info_type = info.info_type; + enabled = info.enabled; +} + + +// Resets all data members to initial (invalid) values, and removes +// tuples corresponding to the reset flags. + +void +TAO_RT_Info_Ex::reset (u_long reset_flags) +{ + // IMPORTANT: among the input arguments, we only reset the period ... + // TBD - if execution times etc. can be selected as well, then reset those, e.g., + // + // criticality = RtecScheduler::VERY_LOW_CRITICALITY; + // worst_case_execution_time = 0; + // typical_execution_time = 0; + // cached_execution_time = 0; + // importance = RtecScheduler::VERY_LOW_IMPORTANCE; + // quantum = 0; + // threads = 0; + // info_type = RtecScheduler::OPERATION; + + period = 0; + + // ... However, we do reset the output attributes ... + + priority = 0; + preemption_subpriority = 0; + preemption_priority = 0; + + // ... and the appropriate tuples associated with the entry. + TAO_Reconfig_Scheduler_Entry * entry_ptr = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + volatile_token); + + ACE_DEBUG((LM_DEBUG, "Removing Entries for RT_Info: %d, entry_ptr: %x\n", handle, entry_ptr)); + if (entry_ptr) + { + entry_ptr->remove_tuples (reset_flags); + } + else + { + ACE_ERROR ((LM_ERROR, "Pointer to associated entry is zero.")); + } +} + +void +TAO_RT_Info_Ex::enabled_state (RtecScheduler::RT_Info_Enabled_Type_t enabled_in) +{ + TAO_Reconfig_Scheduler_Entry * entry_ptr = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + volatile_token); + if (entry_ptr) + { + this->enabled = enabled_in; + entry_ptr->enabled_state (enabled_in); + } + else + { + ACE_ERROR ((LM_ERROR, "Pointer to associated entry is zero.")); + } +} + +RtecScheduler::RT_Info_Enabled_Type_t +TAO_RT_Info_Ex::enabled_state () +{ + return this->enabled; +} + + + +////////////////////////////// +// struct TAO_RT_Info_Tuple // +////////////////////////////// + +// Default Constructor. +TAO_RT_Info_Tuple::TAO_RT_Info_Tuple () + : rate_index (0) +{ +} + + +// Constructor from an RT_Info. +// (Also serves as a copy constructor) + +TAO_RT_Info_Tuple::TAO_RT_Info_Tuple (const RtecScheduler::RT_Info &info) + : TAO_RT_Info_Ex (info), + rate_index (0) +{ +} + +// Destructor. + +TAO_RT_Info_Tuple::~TAO_RT_Info_Tuple () +{ +} + + +// Assignment operator with an RT_Info on the RHS. + +void +TAO_RT_Info_Tuple::operator = (const RtecScheduler::RT_Info &info) +{ + ACE_static_cast (TAO_RT_Info_Ex, *this) = info; +} + + +// Less-than comparison operator: orders tuples by ascending rate (descending period). + +int +TAO_RT_Info_Tuple::operator < (const TAO_RT_Info_Tuple &t) +{ + return (this->period > t.period) ? 1 : 0; +} + //////////////////////////////////////// // class TAO_Reconfig_Scheduler_Entry // @@ -42,7 +233,7 @@ ACE_RCSID (Sched, Reconfig_Sched_Utils, "$Id$") // Constructor. TAO_Reconfig_Scheduler_Entry:: -TAO_Reconfig_Scheduler_Entry (RtecScheduler::RT_Info &rt_info) +TAO_Reconfig_Scheduler_Entry (TAO_RT_Info_Ex &rt_info) : actual_rt_info_ (&rt_info), fwd_dfs_status_ (NOT_VISITED), rev_dfs_status_ (NOT_VISITED), @@ -53,17 +244,222 @@ TAO_Reconfig_Scheduler_Entry (RtecScheduler::RT_Info &rt_info) is_thread_delineator_ (0), has_unresolved_remote_dependencies_ (0), has_unresolved_local_dependencies_ (0), - effective_exec_multiplier_ (0), - effective_period_ (0) + aggregate_exec_time_ (0), + orig_tuple_period_sum_ (0), + prop_tuple_period_sum_ (0), + orig_tuple_count_ (0), + prop_tuple_count_ (0), + current_admitted_tuple_ (0), + enabled_ (rt_info.enabled) + // effective_exec_multiplier_ (0), //WSOA merge commented out + // effective_period_ (0) //WSOA merge commented out { // Store the RT_Info fields. this->orig_rt_info_data (*actual_rt_info_); } +// Constructor. + +TAO_Reconfig_Scheduler_Entry:: +~TAO_Reconfig_Scheduler_Entry () +{ + this->remove_tuples (ORIGINAL | PROPAGATED); +} + + +// Removes all tuples from the entry. + +void +TAO_Reconfig_Scheduler_Entry:: +remove_tuples (u_long tuple_flags) +{ + TAO_RT_Info_Tuple **tuple_ptr_ptr; + + if (tuple_flags & ORIGINAL) + { + TUPLE_SET_ITERATOR orig_tuple_iter (this->orig_tuple_subset_); + + while (orig_tuple_iter.done () == 0) + { + if (orig_tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0) + { + ACE_ERROR ((LM_ERROR, + "Failed to access tuple under iterator")); + return; + } + + delete (*tuple_ptr_ptr); + + orig_tuple_iter.advance (); + } + + this->orig_tuple_subset_.reset (); + } + + // If either the originals or the propagated tuple pointers are to + // be removed, we have to get rid of the propagated pointers lest + // they become handles to access violations after the original + // tuples are destroyed. + if (tuple_flags & PROPAGATED + || tuple_flags & ORIGINAL) + { + this->prop_tuple_subset_.reset (); + } +} + + +// Adds a new tuple to the entry and updates the +// rate indices and mean rate for the tuples. + +int +TAO_Reconfig_Scheduler_Entry:: +insert_tuple (TAO_RT_Info_Tuple &tuple, + Tuple_Type tuple_type, + int replace) +{ + // Choose the appropriate tuple subset. + TUPLE_SET *set_ptr = (tuple_type == ORIGINAL) ? & orig_tuple_subset_ : & prop_tuple_subset_; + + // Recompute rate indices. + + tuple.rate_index = 0; + TAO_RT_Info_Tuple **tuple_ptr_ptr; + + TUPLE_SET_ITERATOR tuple_iter (*set_ptr); + + while (tuple_iter.done () == 0) + { + // Get a pointer to the tuple under the iterator. + if (tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, "Failed to access tuple under iterator"), -1); + } + + // Update existing tuples + if ((*tuple_ptr_ptr)->period > tuple.period) + { + // Move the tuple's rate index higher than any in the set + // with lower rates. + ++tuple.rate_index; + } + else if (replace && (*tuple_ptr_ptr)->period == tuple.period) + { + // If the replace flag is set, and there is already a tuple + // with the same rate in the set, just update that tuple and + // return. + **tuple_ptr_ptr = tuple; + return 1; + } + else + { + // Otherwise, just update the rate index of the subsequent + // tuples, which have the same or higher rates. + ++(*tuple_ptr_ptr)->rate_index; + } + + tuple_iter.advance (); + } + + // Update aggregate rate data, insert the tuple + if (tuple_type == ORIGINAL) + { + this->orig_tuple_period_sum_ += tuple.period; + ++this->orig_tuple_count_; + return (this->orig_tuple_subset_.insert (&tuple) < 0) ? -1 : 0; + } + else + { + this->prop_tuple_period_sum_ += tuple.period; + ++this->prop_tuple_count_; + return (this->prop_tuple_subset_.insert (&tuple) < 0) ? -1 : 0; + } +} + + +// Updates a matching tuple. + +int +TAO_Reconfig_Scheduler_Entry:: +update_tuple (TAO_RT_Info_Ex &info, + Tuple_Type tuple_type) +{ + // Choose the appropriate tuple subset. + TUPLE_SET *set_ptr = (tuple_type == ORIGINAL) ? & orig_tuple_subset_ : & prop_tuple_subset_; + + // Find and update the first matching tuple, if any. + + TAO_RT_Info_Tuple **tuple_ptr_ptr; + TUPLE_SET_ITERATOR tuple_iter (*set_ptr); + + while (tuple_iter.done () == 0) + { + // Get a pointer to the tuple under the iterator. + if (tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, "Failed to access tuple under iterator"), -1); + } + else if ((*tuple_ptr_ptr)->period < info.period) + { + // If we've hit a tuple with a shorter period (higher rate), + // then we're done. + break; + } + else if ((*tuple_ptr_ptr)->period == info.period) + { + // If the replace flag is set, and there is already a tuple + // with the same rate in the set, just update that tuple and + // return. + **tuple_ptr_ptr = info; + return 1; + } + + tuple_iter.advance (); + } + + return 0; +} + + +// Registers tuples into the passed tuple pointer array. +int +TAO_Reconfig_Scheduler_Entry:: +register_tuples (TAO_RT_Info_Tuple ** tuple_ptr_array, + long &tuple_count) +{ + // Iterate over the tuples, adding them to the pointer array. + + TAO_RT_Info_Tuple **tuple_ptr_ptr; + TUPLE_SET_ITERATOR tuple_iter (orig_tuple_subset_); + + while (tuple_iter.done () == 0) + { + // Get a pointer to the tuple under the iterator. + if (tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, "Failed to access tuple under iterator"), -1); + } + else + { + tuple_ptr_array [tuple_count] = *tuple_ptr_ptr; + ++tuple_count; + } + + tuple_iter.advance (); + } + + return 0; +} + + + // Accessor for original RT_Info data. -RtecScheduler::RT_Info & +TAO_RT_Info_Ex & TAO_Reconfig_Scheduler_Entry::orig_rt_info_data () { return orig_rt_info_data_; @@ -73,7 +469,7 @@ TAO_Reconfig_Scheduler_Entry::orig_rt_info_data () // Mutator for stored original RT_Info data. void -TAO_Reconfig_Scheduler_Entry::orig_rt_info_data (RtecScheduler::RT_Info &data) +TAO_Reconfig_Scheduler_Entry::orig_rt_info_data (TAO_RT_Info_Ex &data) { // Only store the information that can be updated by the public interface at run-time. this->orig_rt_info_data_.worst_case_execution_time = data.worst_case_execution_time; @@ -85,11 +481,12 @@ TAO_Reconfig_Scheduler_Entry::orig_rt_info_data (RtecScheduler::RT_Info &data) this->orig_rt_info_data_.quantum = data.quantum; this->orig_rt_info_data_.threads = data.threads; this->orig_rt_info_data_.info_type = data.info_type; + this->orig_rt_info_data_.enabled = data.enabled; } // Accessor for actual RT_Info pointer. -RtecScheduler::RT_Info * +TAO_RT_Info_Ex * TAO_Reconfig_Scheduler_Entry:: actual_rt_info () { @@ -101,7 +498,7 @@ actual_rt_info () void TAO_Reconfig_Scheduler_Entry:: -actual_rt_info (RtecScheduler::RT_Info *rt_info) +actual_rt_info (TAO_RT_Info_Ex *rt_info) { this->actual_rt_info_ = rt_info; } @@ -293,7 +690,7 @@ has_unresolved_local_dependencies (int i) this->has_unresolved_local_dependencies_ = i; } - +/* WSOA merge - commented out // Accessor for effective period of corresponding RT_Info. RtecScheduler::Period_t @@ -332,7 +729,7 @@ effective_exec_multiplier (CORBA::Long l) { this->effective_exec_multiplier_ = l; } - +*/ /////////////////////////// // TAO_RSE_Reset_Visitor // @@ -356,7 +753,20 @@ TAO_RSE_Reset_Visitor::visit (TAO_Reconfig_Scheduler_Entry &rse) // visitor is applied prior to a DFS traversal, in which callers // *unset* the thread delineator status of any of their called // operations that do not specify a period or threads. - rse.is_thread_delineator (1); + + if (rse.actual_rt_info ()->enabled != RtecScheduler::RT_INFO_NON_VOLATILE) + { + rse.is_thread_delineator (1); + + // Only reset the period for entries that are not root nodes. Added by BRM. + if (rse.actual_rt_info ()->threads == 0) + { + rse.actual_rt_info ()->period = 0; + } + } + + // Remove the propagated tuples in the entry. + rse.remove_tuples (TAO_Reconfig_Scheduler_Entry::PROPAGATED); rse.fwd_dfs_status (TAO_Reconfig_Scheduler_Entry::NOT_VISITED); rse.rev_dfs_status (TAO_Reconfig_Scheduler_Entry::NOT_VISITED); @@ -366,30 +776,184 @@ TAO_RSE_Reset_Visitor::visit (TAO_Reconfig_Scheduler_Entry &rse) rse.rev_finished (-1); rse.has_unresolved_remote_dependencies (0); rse.has_unresolved_local_dependencies (0); + rse.aggregate_exec_time (rse.actual_rt_info ()->worst_case_execution_time); + rse.current_admitted_tuple (0); + //WSOA merge - commented out // These settings are used for a conservative but // efficient approach to estimating utilization: // for an exact algorithm using frame merging, // other initial settings might be needed. - rse.effective_exec_multiplier (0); - rse.effective_period (0); + //rse.effective_exec_multiplier (0); + //rse.effective_period (0); return 0; } +// Accessor for effective execution time of corresponding RT_Info. + +RtecScheduler::Time +TAO_Reconfig_Scheduler_Entry:: +aggregate_exec_time () +{ + return this->aggregate_exec_time_; +} +// Mutator for effective execution time of corresponding RT_Info. -/////////////////////////////////////////// -// class TAO_MUF_Reconfig_Sched_Strategy // -/////////////////////////////////////////// +void +TAO_Reconfig_Scheduler_Entry:: +aggregate_exec_time (RtecScheduler::Time t) +{ + this->aggregate_exec_time_ = t; +} + +// Accessor for the sum of periods for tuples directly associated +// with the entry. +RtecScheduler::Period_t +TAO_Reconfig_Scheduler_Entry:: +orig_tuple_period_sum () +{ + return orig_tuple_period_sum_; +} + + +// Mutator for the sum of periods for tuples directly associated +// with the entry. +void +TAO_Reconfig_Scheduler_Entry:: +orig_tuple_period_sum (RtecScheduler::Period_t p) +{ + orig_tuple_period_sum_ = p; +} + + +// Accessor for the sum of periods for tuples propagated via +// dependencies on other entries. +RtecScheduler::Period_t +TAO_Reconfig_Scheduler_Entry:: +prop_tuple_period_sum () +{ + return prop_tuple_period_sum_; +} + + +// Mutator for the sum of periods for tuples propagated via +// dependencies on other entries. +void +TAO_Reconfig_Scheduler_Entry:: +prop_tuple_period_sum (RtecScheduler::Period_t p) +{ + prop_tuple_period_sum_ = p; +} + + +// Accessor for the number of tuples directly associated with the +// entry. +u_int +TAO_Reconfig_Scheduler_Entry:: +orig_tuple_count () +{ + return orig_tuple_count_; +} + + +// Mutator for the number of tuples directly associated with the +// entry. +void +TAO_Reconfig_Scheduler_Entry:: +orig_tuple_count (u_int c) +{ + orig_tuple_count_ = c; +} + + +// Accessor for the number of tuples propagated via dependencies on +// other entries. +u_int +TAO_Reconfig_Scheduler_Entry:: +prop_tuple_count () +{ + return prop_tuple_count_; +} + + +// Mutator for the number of tuples propagated via dependencies on +// other entries. +void +TAO_Reconfig_Scheduler_Entry:: +prop_tuple_count (u_int c) +{ + prop_tuple_count_ = c; +} + + +// Accessor for the set of tuples directly associated with the +// entry. +TUPLE_SET & +TAO_Reconfig_Scheduler_Entry:: +orig_tuple_subset () +{ + return orig_tuple_subset_; +} + + +// Accessor for the set of tuples propagated via dependencies on +// other entries. +TUPLE_SET & +TAO_Reconfig_Scheduler_Entry:: +prop_tuple_subset () +{ + return prop_tuple_subset_; +} + + +TAO_RT_Info_Tuple * +TAO_Reconfig_Scheduler_Entry:: +current_admitted_tuple () +{ + return current_admitted_tuple_; +} + + +void +TAO_Reconfig_Scheduler_Entry:: +current_admitted_tuple (TAO_RT_Info_Tuple * t) +{ + current_admitted_tuple_ = t; +} + +// Accessor for flag indicating whether or not node is enabled. + +RtecScheduler::RT_Info_Enabled_Type_t +TAO_Reconfig_Scheduler_Entry:: +enabled_state () const +{ + return this->enabled_; +} + + +// Mutator for flag indicating whether or not node is enabled. + +void +TAO_Reconfig_Scheduler_Entry:: +enabled_state (RtecScheduler::RT_Info_Enabled_Type_t et) +{ + this->enabled_ = et; +} + + +//////////////////////////////////////////// +// class TAO_Reconfig_Sched_Strategy_Base // +//////////////////////////////////////////// // Ordering function to compare the DFS finish times of // two task entries, so qsort orders these in topological // order, with the higher times *first* int -TAO_MUF_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, const void *second) +TAO_Reconfig_Sched_Strategy_Base::comp_entry_finish_times (const void *first, const void *second) { const TAO_Reconfig_Scheduler_Entry *first_entry = * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *, @@ -409,6 +973,16 @@ TAO_MUF_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, con return -1; } + // sort disabled entries to the end + if (first_entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return (second_entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1; + } + else if (second_entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return -1; + } + // Sort entries with higher forward DFS finishing times before those // with lower forward DFS finishing times. if (first_entry->fwd_finished () > @@ -425,12 +999,88 @@ TAO_MUF_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, con return 0; } -// Ordering function used to qsort an array of TAO_Reconfig_Scheduler_Entry -// pointers into a total <priority, subpriority> ordering. Returns -1 if the -// first one is higher, 0 if they're the same, and 1 if the second one is higher. +// Determines whether or not an entry is critical, based on operation characteristics. +// returns 1 if critical, 0 if not int -TAO_MUF_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t) +TAO_Reconfig_Sched_Strategy_Base::is_critical (TAO_Reconfig_Scheduler_Entry &rse) +{ + // Look at the underlying RT_Info's criticality field. + return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY || + rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY) + ? 1 : 0; +} + +// Determines whether or not a tuple is critical, based on operation +// characteristics. returns 1 if critical, 0 if not + +int +TAO_Reconfig_Sched_Strategy_Base::is_critical (TAO_RT_Info_Tuple &t) +{ + // Look at the underlying RT_Info's criticality field. + return (t.criticality == RtecScheduler::HIGH_CRITICALITY || + t.criticality == RtecScheduler::VERY_HIGH_CRITICALITY) + ? 1 : 0; +} + + +// Compares two entries by subpriority alone. Returns -1 if the first +// one is higher, 0 if they're the same, and 1 if the second one is +// higher. + +int +TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (TAO_Reconfig_Scheduler_Entry &lhs, + TAO_Reconfig_Scheduler_Entry &rhs) +{ + // First, compare importance. + + if (lhs.actual_rt_info ()->importance > rhs.actual_rt_info ()->importance) + { + return -1; + } + else if (lhs.actual_rt_info ()->importance < rhs.actual_rt_info ()->importance) + { + return 1; + } + + // Same importance, so look at dfs finish time as a tiebreaker. + + else if (lhs.fwd_finished () > rhs.fwd_finished ()) + { + return -1; + } + else if (lhs.fwd_finished () < rhs.fwd_finished ()) + { + return 1; + } + + // Same dfs finish time, so look at handle as a tiebreaker. + + else if (lhs.actual_rt_info ()->handle > rhs.actual_rt_info ()->handle) + { + return -1; + } + else if (lhs.actual_rt_info ()->handle < rhs.actual_rt_info ()->handle) + { + return 1; + } + + // They're the same if we got here. + return 0; +} + + +//////////////////////////////////////////////// +// class TAO_MUF_FAIR_Reconfig_Sched_Strategy // +//////////////////////////////////////////////// + +// Ordering function used to qsort an array of TAO_RT_Info_Tuple +// pointers into a total <priority, subpriority> ordering. Returns -1 +// if the first one is higher, 0 if they're the same, and 1 if the +// second one is higher. + +int +TAO_MUF_FAIR_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t) { // Convert the passed pointers: the double cast is needed to // make Sun C++ 4.2 happy. @@ -451,15 +1101,25 @@ TAO_MUF_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void return -1; } + // sort disabled entries to the end + if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1; + } + else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return -1; + } + int result = - TAO_MUF_Reconfig_Sched_Strategy::priority_diff (*((*first)->actual_rt_info ()), - *((*second)->actual_rt_info ())); + TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (**first, + **second); // Check whether they were distinguished by priority. if (result == 0) { - return TAO_MUF_Reconfig_Sched_Strategy::compare_subpriority (**first, - **second); + return TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (**first, + **second); } else { @@ -468,66 +1128,102 @@ TAO_MUF_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void } -// Compares two entries by priority alone. Returns -1 if the -// first one is higher, 0 if they're the same, and 1 if the second one is higher. +// Ordering function used to qsort an array of RT_Info_Tuple +// pointers into a total ordering for admission control. Returns +// -1 if the first one is higher, 0 if they're the same, and 1 if +// the second one is higher. int -TAO_MUF_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &s, - TAO_Reconfig_Scheduler_Entry &t) +TAO_MUF_FAIR_Reconfig_Sched_Strategy::total_admission_comp (const void *s, + const void *t) { - // Simply call the corresponding comparison based on the underlying rt_infos. - return TAO_MUF_Reconfig_Sched_Strategy::priority_diff (*s.actual_rt_info (), - *t.actual_rt_info ()); -} + // Convert the passed pointers: the double cast is needed to + // make Sun C++ 4.2 happy. + TAO_RT_Info_Tuple **first = + ACE_reinterpret_cast (TAO_RT_Info_Tuple **, + ACE_const_cast (void *, s)); + TAO_Reconfig_Scheduler_Entry * first_entry = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + (*first)->volatile_token); -// Compares two entries by subpriority alone. Returns -1 if the -// first one is higher, 0 if they're the same, and 1 if the second one is higher. + TAO_RT_Info_Tuple **second = + ACE_reinterpret_cast (TAO_RT_Info_Tuple **, + ACE_const_cast (void *, t)); -int -TAO_MUF_Reconfig_Sched_Strategy::compare_subpriority (TAO_Reconfig_Scheduler_Entry &s, - TAO_Reconfig_Scheduler_Entry &t) -{ - // @@ TO DO: add dependency hash tables to strategy, use them to look for - // *direct* dependencies between two nodes. + TAO_Reconfig_Scheduler_Entry * second_entry = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + (*second)->volatile_token); - // Compare importance. - if (s.actual_rt_info ()->importance > t.actual_rt_info ()->importance) + // Check the converted pointers. + if (first == 0 || *first == 0) { - return -1; + return (second == 0 || *second == 0) ? 0 : 1; } - else if (s.actual_rt_info ()->importance < t.actual_rt_info ()->importance) + else if (second == 0 || *second == 0) { - return 1; + return -1; } - // Same importance, so look at dfs finish time as a tiebreaker. - else if (s.fwd_finished () > t.fwd_finished ()) + + // sort disabled tuples to the end + if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1; + } + else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return -1; + } + + // First, compare according to rate index. + + if ((*first)->rate_index < (*second)->rate_index) { return -1; } - else if (s.fwd_finished () < t.fwd_finished ()) + else if ((*second)->rate_index < (*first)->rate_index) { return 1; } - // They're the same if we got here. + // Then compare by priority. + + int result = + TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (**first, **second); + if (result != 0) + { + return result; + } + + // Then compare by subpriority. + + result = TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (*first_entry, + *second_entry); + if (result != 0) + { + return result; + } + return 0; } -// Compares two RT_Infos by priority alone. Returns -1 if the + +// Compares two RT_Info entries by priority alone. Returns -1 if the // first one is higher, 0 if they're the same, and 1 if the second one is higher. int -TAO_MUF_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s, - RtecScheduler::RT_Info &t) +TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &lhs, + TAO_Reconfig_Scheduler_Entry &rhs) { // In MUF, priority is per criticality level: compare criticalities. - if (s.criticality > t.criticality) + if (lhs.actual_rt_info ()->criticality > + rhs.actual_rt_info ()->criticality) { return -1; } - else if (s.criticality < t.criticality) + else if (lhs.actual_rt_info ()->criticality < + rhs.actual_rt_info ()->criticality) { return 1; } @@ -537,24 +1233,34 @@ TAO_MUF_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s, } -// Determines whether or not an entry is critical, based on operation characteristics. -// returns 1 if critical, 0 if not +// Compares two RT_Info tuples by priority alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. int -TAO_MUF_Reconfig_Sched_Strategy::is_critical (TAO_Reconfig_Scheduler_Entry &rse) +TAO_MUF_FAIR_Reconfig_Sched_Strategy::compare_priority (TAO_RT_Info_Tuple &lhs, + TAO_RT_Info_Tuple &rhs) { - // Look at the underlying RT_Info's criticality field. - return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY || - rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY) - ? 1 : 0; + // In MUF, priority is per criticality level: compare criticalities. + if (lhs.criticality > rhs.criticality) + { + return -1; + } + else if (lhs.criticality < rhs.criticality) + { + return 1; + } + + // They're the same if we got here. + return 0; } + // Fills in a static dispatch configuration for a priority level, based // on the operation characteristics of a representative scheduling entry. int -TAO_MUF_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info, - TAO_Reconfig_Scheduler_Entry &rse) +TAO_MUF_FAIR_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info, + TAO_Reconfig_Scheduler_Entry &rse) { // Global and thread priority of dispatching queue are simply // those assigned the representative operation it will dispatch. @@ -567,56 +1273,20 @@ TAO_MUF_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info return 0; } -/////////////////////////////////////////// -// class TAO_RMS_Reconfig_Sched_Strategy // -/////////////////////////////////////////// -// Ordering function to compare the DFS finish times of -// two task entries, so qsort orders these in topological -// order, with the higher times *first* -int -TAO_RMS_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, const void *second) -{ - const TAO_Reconfig_Scheduler_Entry *first_entry = - * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *, - first); - - const TAO_Reconfig_Scheduler_Entry *second_entry = - * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *, - second); - - // sort blank entries to the end - if (! first_entry) - { - return (second_entry) ? 1 : 0; - } - else if (! second_entry) - { - return -1; - } - // Sort entries with higher forward DFS finishing times before those - // with lower forward DFS finishing times. - if (first_entry->fwd_finished () > - second_entry->fwd_finished ()) - { - return -1; - } - else if (first_entry->fwd_finished () < - second_entry->fwd_finished ()) - { - return 1; - } +/////////////////////////////////////////////////// +// class TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy // +/////////////////////////////////////////////////// - return 0; -} -// Ordering function used to qsort an array of TAO_Reconfig_Scheduler_Entry -// pointers into a total <priority, subpriority> ordering. Returns -1 if the -// first one is higher, 0 if they're the same, and 1 if the second one is higher. +// Ordering function used to qsort an array of TAO_RT_Info_Tuple +// pointers into a total <priority, subpriority> ordering. Returns -1 +// if the first one is higher, 0 if they're the same, and 1 if the +// second one is higher. int -TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t) +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t) { // Convert the passed pointers: the double cast is needed to // make Sun C++ 4.2 happy. @@ -637,15 +1307,28 @@ TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void return -1; } + // sort disabled entries to the end + if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1; + } + else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return -1; + } + + + // Check whether they are distinguished by priority, and if not, + // then by subpriority. + int result = - TAO_RMS_Reconfig_Sched_Strategy::priority_diff (*((*first)->actual_rt_info ()), - *((*second)->actual_rt_info ())); + TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_priority (**first, + **second); - // Check whether they were distinguished by priority. if (result == 0) { - return TAO_RMS_Reconfig_Sched_Strategy::compare_subpriority (**first, - **second); + return TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (**first, + **second); } else { @@ -654,104 +1337,235 @@ TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void } -// Compares two entries by priority alone. Returns -1 if the -// first one is higher, 0 if they're the same, and 1 if the second one is higher. +// Ordering function used to qsort an array of RT_Info_Tuple +// pointers into a total ordering for admission control. Returns +// -1 if the first one is higher, 0 if they're the same, and 1 if +// the second one is higher. int -TAO_RMS_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &s, - TAO_Reconfig_Scheduler_Entry &t) +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::total_admission_comp (const void *s, + const void *t) { - // Simply call the corresponding comparison based on the underlying rt_infos. - return TAO_RMS_Reconfig_Sched_Strategy::priority_diff (*s.actual_rt_info (), - *t.actual_rt_info ()); -} + // Convert the passed pointers: the double cast is needed to + // make Sun C++ 4.2 happy. + TAO_RT_Info_Tuple **first = + ACE_reinterpret_cast (TAO_RT_Info_Tuple **, + ACE_const_cast (void *, s)); + TAO_Reconfig_Scheduler_Entry * first_entry = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + (*first)->volatile_token); -// Compares two entries by subpriority alone. Returns -1 if the -// first one is higher, 0 if they're the same, and 1 if the second one is higher. + TAO_RT_Info_Tuple **second = + ACE_reinterpret_cast (TAO_RT_Info_Tuple **, + ACE_const_cast (void *, t)); -int -TAO_RMS_Reconfig_Sched_Strategy::compare_subpriority (TAO_Reconfig_Scheduler_Entry &s, - TAO_Reconfig_Scheduler_Entry &t) -{ - // @@ TO DO: add dependency hash tables to strategy, use them to look for - // *direct* dependencies between two nodes. + TAO_Reconfig_Scheduler_Entry * second_entry = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + (*second)->volatile_token); - // Compare importance. - if (s.actual_rt_info ()->importance > t.actual_rt_info ()->importance) + // Check the converted pointers. + if (first == 0 || *first == 0) + { + return (second == 0 || *second == 0) ? 0 : 1; + } + else if (second == 0 || *second == 0) { return -1; } - else if (s.actual_rt_info ()->importance < t.actual_rt_info ()->importance) + + // sort disabled tuples to the end + if ((*first)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) ? 0 : 1; + } + else if ((*second)->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return -1; + } + + // First, compare according to minimal rate index. + + if ((*first)->rate_index == 0 && (*second)->rate_index != 0) + { + return -1; + } + else if ((*second)->rate_index == 0 && (*first)->rate_index != 0) { return 1; } - // Same importance, so look at dfs finish time as a tiebreaker. - else if (s.fwd_finished () > t.fwd_finished ()) + + // Then compare by priority. + + int result = + TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality (**first, + **second); + if (result != 0) + { + return result; + } + + // Then compare by subpriority. + + result = TAO_Reconfig_Sched_Strategy_Base::compare_subpriority (*first_entry, + *second_entry); + if (result != 0) + { + return result; + } + + // Finally, compare by rate index. + + if ((*first)->rate_index < (*second)->rate_index) { return -1; } - else if (s.fwd_finished () < t.fwd_finished ()) + else if ((*second)->rate_index < (*first)->rate_index) { return 1; } - // They're the same if we got here. return 0; } -// Compares two RT_Infos by priority alone. Returns -1 if the +// Compares two RT_Info entries by criticality alone. Returns -1 if the // first one is higher, 0 if they're the same, and 1 if the second one is higher. int -TAO_RMS_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s, - RtecScheduler::RT_Info &t) +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality(TAO_Reconfig_Scheduler_Entry &lhs, + TAO_Reconfig_Scheduler_Entry &rhs) { - // In RMS, priority is per criticality level: compare criticalities. - if (s.period > t.period) + // In MUF, priority is per criticality level: compare criticalities. + + if (lhs.actual_rt_info ()->criticality > rhs.actual_rt_info ()->criticality) { return -1; } - else if (s.period < t.period) + else if (lhs.actual_rt_info ()->criticality < rhs.actual_rt_info ()->criticality) { return 1; } + else + { + return 0; + } +} + +// Compares two RT_Info entries by criticality alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. +int +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality(TAO_RT_Info_Tuple &lhs, + TAO_RT_Info_Tuple &rhs) +{ + if (lhs.criticality > rhs.criticality) + { + return -1; + } + else if (lhs.criticality < rhs.criticality) + { + return 1; + } + else + { + return 0; + } +} + +// Compares two RT_Info entries by priority alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. + +int +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &lhs, + TAO_Reconfig_Scheduler_Entry &rhs) +{ + // In MUF, priority is per criticality level: compare criticalities. + int result = TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_criticality(lhs, rhs); + + if (result != 0) + { + return result; + } + + // Same criticality: if high criticality, differentiate by rate. + if (TAO_Reconfig_Sched_Strategy_Base::is_critical (rhs)) + { + if (lhs.actual_rt_info ()->period < rhs.actual_rt_info ()->period) + { + return -1; + } + else if (lhs.actual_rt_info ()->period > rhs.actual_rt_info ()->period) + { + return 1; + } + } // They're the same if we got here. return 0; } -// Determines whether or not an entry is critical, based on operation characteristics. -// returns 1 if critical, 0 if not +// Compares two RT_Info tuples by priority alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. int -TAO_RMS_Reconfig_Sched_Strategy::is_critical (TAO_Reconfig_Scheduler_Entry &rse) +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::compare_priority (TAO_RT_Info_Tuple &lhs, + TAO_RT_Info_Tuple &rhs) { - // Look at the underlying RT_Info's criticality field. - return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY || - rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY) - ? 1 : 0; + // In RMS_Dyn, priority is first partitioned per criticality level: + // compare criticalities. + + if (lhs.criticality > rhs.criticality) + { + return -1; + } + else if (lhs.criticality < rhs.criticality) + { + return 1; + } + + // Same criticality: if high criticality, differentiate by rate. + else if (TAO_Reconfig_Sched_Strategy_Base::is_critical (rhs)) + { + if (lhs.period < rhs.period) + { + return -1; + } + else if (lhs.period > rhs.period) + { + return 1; + } + } + + // They're the same if we got here. + return 0; } + // Fills in a static dispatch configuration for a priority level, based // on the operation characteristics of a representative scheduling entry. int -TAO_RMS_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info, - TAO_Reconfig_Scheduler_Entry &rse) +TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info, + TAO_Reconfig_Scheduler_Entry &rse) { // Global and thread priority of dispatching queue are simply // those assigned the representative operation it will dispatch. info.preemption_priority = rse.actual_rt_info ()->preemption_priority; info.thread_priority = rse.actual_rt_info ()->priority; - // Dispatching queues are all laxity-based in this strategy. - info.dispatching_type = RtecScheduler::STATIC_DISPATCHING; + // Critical queues are static, and non-critical ones are + // laxity-based in this strategy. + if (TAO_Reconfig_Sched_Strategy_Base::is_critical (rse)) + { + info.dispatching_type = RtecScheduler::STATIC_DISPATCHING; + } + else + { + info.dispatching_type = RtecScheduler::LAXITY_DISPATCHING; + } return 0; } - #endif /* TAO_RECONFIG_SCHED_UTILS_C */ diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h index 1b9e3bb151f..06c2a18da5e 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h @@ -18,6 +18,10 @@ #define TAO_RECONFIG_SCHED_UTILS_H #include /**/ "ace/pre.h" +// Uncomment this to turn on some extra trace level debugging info, +// comment it out to turn off that extra debugging info. +#define SCHEDULER_LOGGING + #include "ace/config-all.h" #include "orbsvcs/Scheduler_Factory.h" @@ -28,10 +32,77 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +struct TAO_RTSched_Export TAO_RT_Info_Ex + : public RtecScheduler::RT_Info + // = TITLE + // A wrapper class for the IDL-generated RT_Info operation descriptors. + // + // = DESCRIPTION + // This class provides (re)initialization methods and a validity flag + // for the underlying IDL-generated RT_Info descriptor. +{ + TAO_RT_Info_Ex (); + // Default Constructor. + + TAO_RT_Info_Ex (const RtecScheduler::RT_Info &); + // Constructor from an RT_Info + // (also serves as a copy constructor). + + virtual ~TAO_RT_Info_Ex (); + // Destructor. + + void operator = (const RtecScheduler::RT_Info &); + // Assignment operator with an RT_Info on the RHS. + + virtual void reset (u_long reset_flags); + // Resets output data members to initial values, and removes tuples + // corresponding to the reset flags. + + virtual void enabled_state (RtecScheduler::RT_Info_Enabled_Type_t); + // Sets the info and underlying entry's enable states. + + virtual RtecScheduler::RT_Info_Enabled_Type_t enabled_state (); + // Returns the info's enable state. +}; + + +struct TAO_RTSched_Export TAO_RT_Info_Tuple + : public TAO_RT_Info_Ex + // = TITLE + // An implementation class used to wrap available operation descriptors. + // Each operation may have one or more tuples describing different rates, + // etc., for the same operation. + // + // = DESCRIPTION + // This class enables admission control within the Reconfig Scheduler, + // which offers improved performance compared to admission control + // outside the scheduler. +{ + TAO_RT_Info_Tuple (); + // Default Constructor. + + TAO_RT_Info_Tuple (const RtecScheduler::RT_Info &); + // Constructor from an RT_Info. + // (also serves as a copy constructor). + + virtual ~TAO_RT_Info_Tuple (); + // Destructor. + + void operator = (const RtecScheduler::RT_Info &); + // Assignment operator with an RT_Info on the RHS. + + int operator < (const TAO_RT_Info_Tuple &t); + // Less-than comparison operator: orders tuples by ascending rate (descending period). + + u_long rate_index; + // Index of the tuple in the operation's ordered available rates +}; + class TAO_RTSched_Export TAO_Reconfig_Scheduler_Entry // = TITLE - // An implementation class used to store interim scheduling results + // An implementation class used to decouple the available descriptors + // from the admitted descriptors, and to store interim scheduling results // such as DFS finishing order, etc. // // = DESCRIPTION @@ -44,19 +115,40 @@ public: // Info for DFS traversal, topological sort of call graph. enum DFS_Status {NOT_VISITED, VISITED, FINISHED}; - TAO_Reconfig_Scheduler_Entry (RtecScheduler::RT_Info &rt_info); + enum Tuple_Type {ORIGINAL = 0x01UL, PROPAGATED = 0x02UL}; + + TAO_Reconfig_Scheduler_Entry (TAO_RT_Info_Ex &rt_info); // Constructor. - RtecScheduler::RT_Info & orig_rt_info_data (void); + ~TAO_Reconfig_Scheduler_Entry (); + // Destructor. + + void remove_tuples (u_long tuple_flags = ORIGINAL | PROPAGATED); + // Removes all tuples from the entry. + + int insert_tuple (TAO_RT_Info_Tuple &tuple, + Tuple_Type tuple_type = ORIGINAL, + int replace = 0); + // Inserts a tuple into the appropriate tuple multiset. + + int update_tuple (TAO_RT_Info_Ex &info, + Tuple_Type tuple_type = ORIGINAL); + // Updates a matching tuple. + + int register_tuples (TAO_RT_Info_Tuple ** tuple_ptr_array, + long &tuple_count); + // Registers tuples into the passed tuple pointer array. + + TAO_RT_Info_Ex & orig_rt_info_data (void); // Accessor for stored original RT_Info data. - void orig_rt_info_data (RtecScheduler::RT_Info &data); + void orig_rt_info_data (TAO_RT_Info_Ex &data); // Mutator for stored original RT_Info data. - RtecScheduler::RT_Info * actual_rt_info (); + TAO_RT_Info_Ex * actual_rt_info (); // Accessor for actual RT_Info. - void actual_rt_info (RtecScheduler::RT_Info *); + void actual_rt_info (TAO_RT_Info_Ex *); // Mutator for actual RT_Info. long fwd_discovered () const; @@ -119,6 +211,74 @@ public: // Mutator for flag indicating whether node has unresolved local // dependencies. + RtecScheduler::Time aggregate_exec_time (); + // Accessor for effective execution time of the corresponding + // RT_Info and all of its disjunctively (i.e., dispatching waveforms + // are additive) executed dependants. + + void aggregate_exec_time (RtecScheduler::Time t); + // Mutator for effective execution time of the corresponding RT_Info + // and its disjunctively executed dependants. + + RtecScheduler::Period_t orig_tuple_period_sum (); + // Accessor for the sum of periods for tuples directly associated + // with the entry. It can be used to compute the mean rate for the + // entry. + + void orig_tuple_period_sum (RtecScheduler::Period_t p); + // Mutator for the sum of periods for tuples directly associated + // with the entry. It can be used to compute the mean rate for the + // entry. + + RtecScheduler::Period_t prop_tuple_period_sum (); + // Accessor for the sum of periods for tuples propagated via + // dependencies on other entries. It can be used to compute the + // mean rate for the entry. + + void prop_tuple_period_sum (RtecScheduler::Period_t p); + // Mutator for the sum of periods for tuples propagated via + // dependencies on other entries. It can be used to compute the + // mean rate for the entry. + + u_int orig_tuple_count (); + // Accessor for the number of tuples directly associated with the + // entry. + + void orig_tuple_count (u_int c); + // Mutator for the number of tuples directly associated with the + // entry. + + u_int prop_tuple_count (); + // Accessor for the number of tuples propagated via dependencies on + // other entries. + + void prop_tuple_count (u_int c); + // Mutator for the number of tuples propagated via dependencies on + // other entries. + + TUPLE_SET& orig_tuple_subset (); + // Accessor for the set of tuples directly associated with the + // entry. + + TUPLE_SET& prop_tuple_subset (); + // Accessor for the set of tuples propagated via dependencies on + // other entries. + + TAO_RT_Info_Tuple * current_admitted_tuple (); + // Returns a pointer to the entry's most recently admitted tuple. + // The pointer is zero if no tuples have been admitted so far. + + void current_admitted_tuple (TAO_RT_Info_Tuple *); + // Sets a pointer to the entry's most recently admitted tuple. + // The pointer is zero if no tuples have been admitted so far. + + RtecScheduler::RT_Info_Enabled_Type_t enabled_state () const; + // Accessor for flag indicating whether or not node is enabled. + + void enabled_state (RtecScheduler::RT_Info_Enabled_Type_t); + // Mutator for flag indicating whether or not node is enabled. + +/* WSOA merge - commented out RtecScheduler::Period_t effective_period (); // Accessor for effective period of corresponding RT_Info. @@ -132,16 +292,17 @@ public: void effective_exec_multiplier (CORBA::Long l); // Mutator for effective execution time multiplier of corresponding // RT_Info. +*/ private: - RtecScheduler::RT_Info orig_rt_info_data_; + TAO_RT_Info_Ex orig_rt_info_data_; // Stores the values of operation characteristics as they were specified // in the most recent call to the Reconfig_Scheduler's set () method. // That way, the scheduler propagation pass can overwrite RT_Info fields // without losing the original values. This is useful when - RtecScheduler::RT_Info *actual_rt_info_; + TAO_RT_Info_Ex *actual_rt_info_; // Points to the actual RT_Info to which the schedling entry corresponds. DFS_Status fwd_dfs_status_; @@ -173,12 +334,45 @@ private: // Flag indicating whether or not there are unresolved local // dependencies in the entry's dependency call chain. + RtecScheduler::Time aggregate_exec_time_; + // Effective execution time for corresponding RT_Info and its + // disjunctively executed dependants. + + RtecScheduler::Period_t orig_tuple_period_sum_; + // Sum of periods for tuples directly associated with the entry. It + // can be used to compute the mean rate for the entry. + + RtecScheduler::Period_t prop_tuple_period_sum_; + // The sum of periods for tuples propagated via dependencies on + // other entries. It can be used to compute the mean rate for the + // entry. + + u_int orig_tuple_count_; + // The number of tuples directly associated with the entry. + + u_int prop_tuple_count_; + // The number of tuples propagated via dependencies on other + // entries. + + TUPLE_SET orig_tuple_subset_; + // The set of tuples directly associated with the entry. + + TUPLE_SET prop_tuple_subset_; + // The set of tuples propagated via dependencies on other entries. + + TAO_RT_Info_Tuple * current_admitted_tuple_; + // A pointer to the entry's most recently admitted tuple. + + RtecScheduler::RT_Info_Enabled_Type_t enabled_; + // Flag indicating whether or not node is enabled. + + /* - WSOA merge - commented out CORBA::Long effective_exec_multiplier_; // Effective execution time multiplier for corresponding RT_Info. RtecScheduler::Period_t effective_period_; // Effective period of corresponding RT_Info. - + */ }; @@ -213,58 +407,104 @@ public: TAO_RSE_Reset_Visitor (); // Constructor. + virtual ~TAO_RSE_Reset_Visitor () {} + // Destructor. + virtual int visit (TAO_Reconfig_Scheduler_Entry &rse); // Resets the fields in the entry to pre-DFS traversal states. // Returns 0 on success and -1 on error. }; +class TAO_RTSched_Export TAO_RT_Info_Tuple_Visitor + // = TITLE + // An abstract base class for RT_Info tuple visitors. + // + // = DESCRIPTION + // This class simplifies the reconfig scheduler implementation + // by giving a common interface for distinct visitors over the + // RT_Info tuples. +{ +public: + + virtual int visit (TAO_RT_Info_Tuple &) = 0; + // Visit a RT_Info tuple. + +}; + + +class TAO_RTSched_Export TAO_Reconfig_Sched_Strategy_Base + // = TITLE + // A base class for scheduling strategies + // + // = DESCRIPTION This class provides a DFS finish time comparison + // function, a static subpriority comparison function, and a + // criticality evaluation function for all scheduling strategies. +{ +public: + + static int comp_entry_finish_times (const void *first, const void *second); + // Ordering function to compare the DFS finish times of + // two task entries, so qsort orders these in topological + // order, with the higher times *first*. + static int is_critical (TAO_Reconfig_Scheduler_Entry &rse); + // Determines whether or not an entry is critical, based on + // operation characteristics. returns 1 if critical, 0 if not + static int is_critical (TAO_RT_Info_Tuple &t); + // Determines whether or not a tuple is critical, based on operation + // characteristics. returns 1 if critical, 0 if not -class TAO_RTSched_Export TAO_MUF_Reconfig_Sched_Strategy - // = TITLE - // A scheduling strategy that implements the Maximum - // Urgency First scheduling algorithm. + static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &, + TAO_Reconfig_Scheduler_Entry &); + // Compares two entries by subpriority alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. +}; + +class TAO_RTSched_Export TAO_MUF_FAIR_Reconfig_Sched_Strategy + : public TAO_Reconfig_Sched_Strategy_Base + // = TITLE + // A scheduling strategy that implements the Maximum Urgency First + // scheduling algorithm with Fair Admission of Indexed Rates + // (FAIR). // // = DESCRIPTION // The strategy assigns static thread and global priority according // to operation criticality, assigns static subpriority according to // importance and then topological order, and assigns a dispatching // configuration with a minimum laxity dispatching queue for each - // distinct criticality level. + // distinct criticality level. It admits operation tuples in order + // of ascending rate index, where the lowest rate for an operation + // has index 0, the next higher rate has index 1, etc. { public: - static int comp_entry_finish_times (const void *first, const void *second); - // Ordering function to compare the DFS finish times of - // two task entries, so qsort orders these in topological - // order, with the higher times *first*. - static int total_priority_comp (const void *, const void *); - // Ordering function used to qsort an array of - // TAO_Reconfig_Scheduler_Entry pointers into a total <priority, - // subpriority> ordering. Returns -1 if the first one is higher, 0 - // if they're the same, and 1 if the second one is higher. + // Ordering function used to qsort an array of RT_Info_Tuple + // pointers into a total <priority, subpriority> ordering. Returns + // -1 if the first one is higher, 0 if they're the same, and 1 if + // the second one is higher. + + static int total_admission_comp (const void *, const void *); + // Ordering function used to qsort an array of RT_Info_Tuple + // pointers into a total ordering for admission control. Returns + // -1 if the first one is higher, 0 if they're the same, and 1 if + // the second one is higher. static int compare_priority (TAO_Reconfig_Scheduler_Entry &, TAO_Reconfig_Scheduler_Entry &); // Compares two entries by priority alone. Returns -1 if the // first one is higher, 0 if they're the same, and 1 if the second one is higher. - - static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &, - TAO_Reconfig_Scheduler_Entry &); - // Compares two entries by subpriority alone. Returns -1 if the + static int compare_priority (TAO_RT_Info_Tuple &, + TAO_RT_Info_Tuple &); + // Compares two tuples by priority alone. Returns -1 if the // first one is higher, 0 if they're the same, and 1 if the second one is higher. - static int priority_diff (RtecScheduler::RT_Info &s, - RtecScheduler::RT_Info &t); - // Compares two RT_Infos by priority alone. Returns -1 if the - // first one is higher, 0 if they're the same, and 1 if the second one is higher. - - static int is_critical (TAO_Reconfig_Scheduler_Entry &rse); - // Determines whether or not an entry is critical, based on operation characteristics. - // returns 1 if critical, 0 if not + static int compare_admission_order (TAO_RT_Info_Tuple &, + TAO_RT_Info_Tuple &); + // Compares two tuples by the given admission ordering. Returns -1 if the + // first one is earlier, 0 if they're the same, and 1 if the second one is earlier. static int assign_config (RtecScheduler::Config_Info &, TAO_Reconfig_Scheduler_Entry &); @@ -272,51 +512,69 @@ public: // on the operation characteristics of a representative scheduling entry. }; -class TAO_RTSched_Export TAO_RMS_Reconfig_Sched_Strategy + +class TAO_RTSched_Export TAO_RMS_Dyn_MNO_Reconfig_Sched_Strategy + : public TAO_Reconfig_Sched_Strategy_Base // = TITLE - // A scheduling strategy that implements the Maximum - // Urgency First scheduling algorithm. + // A scheduling strategy that implements the Boeing RMS-Dynamic + // scheduling algorithm, and the Honeywell MNO admission control + // algorithm. // // = DESCRIPTION - // The strategy assigns static thread and global priority according - // to operation criticality, assigns static subpriority according to - // importance and then topological order, and assigns a dispatching - // configuration with a minimum laxity dispatching queue for each - // distinct criticality level. + // The strategy assigns static thread and global priority + // according to criticality and rate, assigns static subpriority + // according to importance and then topological order, and assigns + // a dispatching configuration with a static dispatching queue for + // each high criticality rate, and a single minimum laxity + // dispatching queue for all low criticality operations. It + // admits the lowest rate-index tuple for each operation, then + // admits operations at their highest admissible rates in priority + // order. { public: - static int comp_entry_finish_times (const void *first, const void *second); - // Ordering function to compare the DFS finish times of - // two task entries, so qsort orders these in topological - // order, with the higher times *first*. - static int total_priority_comp (const void *, const void *); - // Ordering function used to qsort an array of - // TAO_Reconfig_Scheduler_Entry pointers into a total <priority, - // subpriority> ordering. Returns -1 if the first one is higher, 0 - // if they're the same, and 1 if the second one is higher. + // Ordering function used to qsort an array of RT_Info_Tuple + // pointers into a total <priority, subpriority> ordering. Returns + // -1 if the first one is higher, 0 if they're the same, and 1 if + // the second one is higher. + + static int total_admission_comp (const void *, const void *); + // Ordering function used to qsort an array of RT_Info_Tuple + // pointers into a total ordering for admission control. Returns + // -1 if the first one is higher, 0 if they're the same, and 1 if + // the second one is higher. + + static int compare_criticality(TAO_Reconfig_Scheduler_Entry &lhs, + TAO_Reconfig_Scheduler_Entry &rhs); + // Compares two entries by criticality alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. + + static int compare_criticality(TAO_RT_Info_Tuple &lhs, + TAO_RT_Info_Tuple &rhs); + // Compares two entries by criticality alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. static int compare_priority (TAO_Reconfig_Scheduler_Entry &, TAO_Reconfig_Scheduler_Entry &); // Compares two entries by priority alone. Returns -1 if the // first one is higher, 0 if they're the same, and 1 if the second one is higher. + static int compare_priority (TAO_RT_Info_Tuple &, + TAO_RT_Info_Tuple &); + // Compares two tuples by priority alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. + + static int compare_admission_order (TAO_RT_Info_Tuple &, + TAO_RT_Info_Tuple &); + // Compares two entries by admission ordering policy. Returns -1 if the + // first one is earlier, 0 if they're the same, and 1 if the second one is earlier. static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &, TAO_Reconfig_Scheduler_Entry &); // Compares two entries by subpriority alone. Returns -1 if the // first one is higher, 0 if they're the same, and 1 if the second one is higher. - static int priority_diff (RtecScheduler::RT_Info &s, - RtecScheduler::RT_Info &t); - // Compares two RT_Infos by priority alone. Returns -1 if the - // first one is higher, 0 if they're the same, and 1 if the second one is higher. - - static int is_critical (TAO_Reconfig_Scheduler_Entry &rse); - // Determines whether or not an entry is critical, based on operation characteristics. - // returns 1 if critical, 0 if not - static int assign_config (RtecScheduler::Config_Info &, TAO_Reconfig_Scheduler_Entry &); // Fills in a static dispatch configuration for a priority level, based diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp index d9919c85c6f..6882f6632c0 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.cpp @@ -40,15 +40,7 @@ ACE_RCSID(Sched, Reconfig_Sched_Utils_T, "$Id$") template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: TAO_RSE_Dependency_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & rt_info_map) + (DEPENDENCY_SET_MAP & dependency_map, RT_INFO_MAP & rt_info_map) : dependency_map_ (dependency_map), rt_info_map_ (rt_info_map) { @@ -65,6 +57,7 @@ visit (TAO_Reconfig_Scheduler_Entry &rse) { int result = 0; + /* WSOA merge - commented out // Call unconditional action method, which performs any necessary // modifications that are applied to each node unconditionally. if (this->unconditional_action (rse) < 0) @@ -73,6 +66,7 @@ visit (TAO_Reconfig_Scheduler_Entry &rse) "TAO_RSE_Dependency_Visitor::" "visit: error from unconditional action.\n"), -1); } + */ // Call precondition hook method, and only proceed if the // precondition returns 0 for success. @@ -103,15 +97,22 @@ visit (TAO_Reconfig_Scheduler_Entry &rse) { // Iterate over the set of dependencies for the current entry. TAO_Reconfig_Scheduler_Entry * next_rse = 0; - RtecScheduler::RT_Info *next_rt_info; + TAO_RT_Info_Ex *next_rt_info; for (u_int i = 0; i < dependency_set->length (); ++i) { + // Skip over disabled dependencies + if ((*dependency_set) [i].enabled == RtecBase::DEPENDENCY_DISABLED) + { + continue; + } + // Take the handle from the dependency and use it // to obtain an RT_Info pointer from the map. if (rt_info_map_.find ((*dependency_set) [i].rt_info, next_rt_info) != 0) { - ACE_ERROR_RETURN ((LM_ERROR, "RT_Info not found.\n"), -1); + ACE_ERROR_RETURN ((LM_ERROR, "RT_Info (%i) not found.\n", + (*dependency_set) [i].rt_info), -1); } // Extract a pointer to the scheduling entry from the RT_Info. @@ -170,7 +171,7 @@ visit (TAO_Reconfig_Scheduler_Entry &rse) return 0; } - +/* WSOA merge - commented out // Performs an unconditional action when the entry is first reached. // Returns 0 for success, and -1 if an error occurred. @@ -182,7 +183,7 @@ unconditional_action (TAO_Reconfig_Scheduler_Entry &rse) ACE_UNUSED_ARG (rse); return 0; } - +*/ // Tests whether or not any conditional actions should be taken for // the entry. Returns 0 if the actions should be applied, 1 if the @@ -192,9 +193,10 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: precondition (TAO_Reconfig_Scheduler_Entry &rse) { - // Default behavior: just return success. - ACE_UNUSED_ARG (rse); - return 0; + // Only signal to proceed (0) if the passed entry is enabled or non-volatile + return (rse.enabled_state () == RtecScheduler::RT_INFO_DISABLED) + ? 1 + : 0; } @@ -251,16 +253,8 @@ postfix_action (TAO_Reconfig_Scheduler_Entry &rse) template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> TAO_RSE_DFS_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: TAO_RSE_DFS_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & rt_info_map) + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map) : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map), DFS_time_ (0) @@ -276,12 +270,17 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int TAO_RSE_DFS_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: precondition (TAO_Reconfig_Scheduler_Entry &rse) { - return (rse.fwd_dfs_status () == - TAO_Reconfig_Scheduler_Entry::NOT_VISITED) - ? 0 : 1; + int result = + TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: + precondition (rse); + + return (result == 0) + ? ((rse.fwd_dfs_status () == TAO_Reconfig_Scheduler_Entry::NOT_VISITED) + ? 0 + : 1) + : result; } - // Marks entry as forward visited and sets its forward DFS start // time, prior to visiting any of its successors. Returns 0 on // success and -1 on error. @@ -308,10 +307,11 @@ pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, ACE_UNUSED_ARG (entry); ACE_UNUSED_ARG (di); - // Operations we reached via a dependency and that do not + // Enabled operations we reached via a dependency and that do not // specify a period are not thread delineators. - if (successor.actual_rt_info ()->period == 0 && - successor.actual_rt_info ()->threads == 0) + if (successor.enabled_state () != RtecScheduler::RT_INFO_DISABLED + && successor.actual_rt_info ()->period == 0 + && successor.actual_rt_info ()->threads == 0) { successor.is_thread_delineator (0); } @@ -343,16 +343,8 @@ postfix_action (TAO_Reconfig_Scheduler_Entry &rse) template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> TAO_RSE_SCC_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: TAO_RSE_SCC_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & rt_info_map) + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map) : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map), DFS_time_ (0), @@ -361,7 +353,6 @@ TAO_RSE_SCC_Visitor { } - // Accessor for number of cycles detected in traversal. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int @@ -393,7 +384,7 @@ in_a_cycle (int i) this->in_a_cycle_ = i; } - +/* WSOA merge - commented out template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int TAO_RSE_SCC_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: unconditional_action (TAO_Reconfig_Scheduler_Entry &rse) @@ -408,6 +399,7 @@ unconditional_action (TAO_Reconfig_Scheduler_Entry &rse) return 0; } +*/ // Makes sure the entry has not previously been visited in the // reverse DFS (call graph transpose) direction. Returns 0 if @@ -418,9 +410,15 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int TAO_RSE_SCC_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: precondition (TAO_Reconfig_Scheduler_Entry &rse) { - return (rse.rev_dfs_status () == - TAO_Reconfig_Scheduler_Entry::NOT_VISITED) - ? 0 : 1; + int result = + TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: + precondition (rse); + + return (result == 0) + ? ((rse.rev_dfs_status () == TAO_Reconfig_Scheduler_Entry::NOT_VISITED) + ? 0 + : 1) + : 1; } @@ -454,7 +452,9 @@ pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, { ACE_UNUSED_ARG (di); - if (successor.rev_dfs_status () == + if (successor.enabled_state () != + RtecScheduler::RT_INFO_DISABLED + && successor.rev_dfs_status () == TAO_Reconfig_Scheduler_Entry::NOT_VISITED) { if (this->in_a_cycle () == 0) @@ -487,26 +487,85 @@ postfix_action (TAO_Reconfig_Scheduler_Entry &rse) return 0; } +///////////////////////////////////////// +// TAO_RSE_Reverse_Propagation_Visitor // +///////////////////////////////////////// + +// Constructor. -///////////////////////////////// -// TAO_RSE_Propagation_Visitor // -///////////////////////////////// +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +TAO_RSE_Reverse_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Reverse_Propagation_Visitor + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map) + : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map) +{ +} + + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int +TAO_RSE_Reverse_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, + TAO_Reconfig_Scheduler_Entry &successor, + const RtecScheduler::Dependency_Info &di) +{ + ACE_UNUSED_ARG (di); + + // @TODO - check for conjunction nodes here and perform conjunctive + // function on existing rate tuples. Idea: treat conjunctive tuples + // as skolem functions over the possible rates of their incedent + // edges thread delineators!!! Then, can tentatively compute + // utilization for rate combinations. Question: can I find a case + // where this makes tuple rate admission non-monotonic??? I.e., + // where a higher rate for an input results in a lower utilization? + // Might require a skew in the exec times and rates. What are the + // determining characteristics of this? What impact if any does + // phasing have on this? + + // Check for conjunction nodes and don't propagate + // upward from them: they represent a cut point in the graph. + // Do not allow conjunction nodes for now. + if (entry.actual_rt_info ()->info_type == RtecScheduler::CONJUNCTION) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("Conjunction Nodes are not supported currently.")), + -1); + } + else + { + // @TODO - replace the explicit WCET attribute propagation with + // a scheduling strategy functor that propagates arbitrary + // execution time attributes. BTW, for conjunctions BCET and WCET + // are probably needed relative the upper and lower bounds on + // arrival waveforms. + + // Add the successor's aggregate time to the entry's aggregate time. + // Since we're visiting in topological order (called nodes before + // calling nodes), the successor's aggregate time is up to date. + if (successor.enabled_state () != RtecScheduler::RT_INFO_DISABLED) + { + entry.aggregate_exec_time (entry.aggregate_exec_time () + + successor.aggregate_exec_time ()); + } + } + + + // Do not recurse on the successor node, just continue to the next successor. + return 1; +} + + +///////////////////////////////////////// +// TAO_RSE_Forward_Propagation_Visitor // +///////////////////////////////////////// // Constructor. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: -TAO_RSE_Propagation_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & rt_info_map) +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map) : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map), unresolved_locals_ (0), unresolved_remotes_ (0), @@ -518,7 +577,7 @@ TAO_RSE_Propagation_Visitor // Accessor for number of nodes with unresolved local dependencies. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: unresolved_locals (void) { return this->unresolved_locals_; @@ -528,7 +587,7 @@ unresolved_locals (void) // Mutator for number of nodes with unresolved local dependencies. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: unresolved_locals (int i) { this->unresolved_locals_ = i; @@ -538,7 +597,7 @@ unresolved_locals (int i) // Accessor for number of nodes with unresolved remote dependencies. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: unresolved_remotes (void) { return this->unresolved_remotes_; @@ -548,7 +607,7 @@ unresolved_remotes (void) // Mutator for number of nodes with unresolved remote dependencies. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: unresolved_remotes (int i) { this->unresolved_remotes_ = i; @@ -557,7 +616,7 @@ unresolved_remotes (int i) // Accessor for number of nodes with thread specification errors. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: thread_specification_errors (void) { return this->thread_specification_errors_; @@ -567,7 +626,7 @@ thread_specification_errors (void) // Mutator for number of nodes with thread specification errors. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: thread_specification_errors (int i) { this->thread_specification_errors_ = i; @@ -581,7 +640,7 @@ thread_specification_errors (int i) // problems is not considered an error, at least for this method). template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: prefix_action (TAO_Reconfig_Scheduler_Entry &rse) { // Complain about anything that is still marked as a thread @@ -622,7 +681,7 @@ prefix_action (TAO_Reconfig_Scheduler_Entry &rse) // must also specify a period. ++this->thread_specification_errors_; ACE_DEBUG ((LM_ERROR, - "RT_Info \"%s\" specifies %ld " + "RT_Info \"%s\" specifies %1d " "threads, but no period.\n", rse.actual_rt_info ()->entry_point.in (), rse.actual_rt_info ()->threads)); @@ -634,112 +693,98 @@ prefix_action (TAO_Reconfig_Scheduler_Entry &rse) } -// Propagates effective period and execution time multiplier from -// entry to successor prior to visiting successor. Returns 0 on -// success and -1 on error. +// Propagates effective period from entry to successor prior to +// visiting successor. Returns 0 on success and -1 on error. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int -TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, TAO_Reconfig_Scheduler_Entry &successor, const RtecScheduler::Dependency_Info &di) { + if (successor.enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return 1; + } + ACE_UNUSED_ARG (di); + TAO_RT_Info_Tuple **tuple_ptr_ptr; - // This method makes a conservative estimate in cases where periods - // differ, taking the minimum frame size and dividing down the - // execution multiplier of the longer frame (and rounding the result - // upward as needed). A more exact computation could be achieved - // by merging sets of arrivals and frame offsets, but that - // would in turn cost more in run-time computation time. - // NOTE: this approach *only* works for harmonic periods. For - // non-harmonic periods, the set merge approach is necessary. + TUPLE_SET_ITERATOR orig_tuple_iter (entry.orig_tuple_subset ()); - if (successor.effective_period () == 0) + while (orig_tuple_iter.done () == 0) { - // If this is the first dependency by which the successor has - // been reached, and the successor is not itself a thread - // delineator, then simply adopt the effective period and - // execution time multiplier of the shorter period. - successor.effective_period (entry.effective_period ()); - successor.effective_exec_multiplier (entry.effective_exec_multiplier ()); + if (orig_tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0) + { + ACE_ERROR ((LM_ERROR, + "Failed to access tuple under iterator")); + return -1; + } + + // @TODO - check for conjunction nodes here and perform conjunctive + // function on existing rate tuples. + + ACE_DEBUG((LM_DEBUG, "Inserting new propagated tuple for RT_Info: %d, entry_ptr: 0x%x, tuple_ptr: 0x%x\n", + successor.actual_rt_info ()->handle, + &successor, + (*tuple_ptr_ptr))); + // Propagate tuples disjunctively. + successor.insert_tuple (**tuple_ptr_ptr, + TAO_Reconfig_Scheduler_Entry::PROPAGATED); + + successor.actual_rt_info ()->period = + (successor.actual_rt_info ()->period == 0) + ? (*tuple_ptr_ptr)->period + : ACE::minimum_frame_size (successor.actual_rt_info ()->period, + (*tuple_ptr_ptr)->period); + orig_tuple_iter.advance (); } - else - { - // Otherwise, take the smaller of the two periods, and divide down - // the execution multipliers accordingly. - long new_exec_multiplier = 0; - long old_exec_multiplier = 0; + TUPLE_SET_ITERATOR prop_tuple_iter (entry.prop_tuple_subset ()); - if (successor.effective_period () < entry.effective_period ()) + while (prop_tuple_iter.done () == 0) + { + if (prop_tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || *tuple_ptr_ptr == 0) { - // Store the previous execution multiplier. - old_exec_multiplier = successor.effective_exec_multiplier (); - - // Divide down the new execution multiplier. - new_exec_multiplier = - ACE_static_cast (long, - (old_exec_multiplier * - successor.effective_period ()) / - entry.effective_period ()); - - // Adjust for round-off error. - if (old_exec_multiplier > - ACE_static_cast (long, - (new_exec_multiplier * - entry.effective_period ()) / - successor.effective_period ())) - { - ++new_exec_multiplier; - } - - // Set the successor's effective period and execution multiplier. - successor.effective_period (entry.effective_period ()); - successor.effective_exec_multiplier (entry.effective_exec_multiplier () + - new_exec_multiplier); - } - else - { - // Store the previous execution multiplier. - old_exec_multiplier = entry.effective_exec_multiplier (); - - // Divide down the new execution multiplier. - new_exec_multiplier = - ACE_static_cast (long, - old_exec_multiplier * - entry.effective_period () / - successor.effective_period ()); - - // Adjust for round-off error. - if (old_exec_multiplier > - ACE_static_cast (long, - new_exec_multiplier * - successor.effective_period () / - entry.effective_period ())) - { - ++new_exec_multiplier; - } - - // Just set the successor's execution multiplier (the period is unchanged). - successor.effective_exec_multiplier (successor.effective_exec_multiplier () + - new_exec_multiplier); + ACE_ERROR ((LM_ERROR, + "Failed to access tuple under iterator")); + return -1; } + + // @TODO - check for conjunction nodes here and perform conjunctive + // function on existing rate tuples. + + ACE_DEBUG((LM_DEBUG, "Inserting new propagated tuple for RT_Info: %d, entry_ptr: 0x%x, tuple_ptr: 0x%x\n", + successor.actual_rt_info ()->handle, + &successor, + (*tuple_ptr_ptr))); + // Propagate tuples disjunctively. + successor.insert_tuple (**tuple_ptr_ptr, + TAO_Reconfig_Scheduler_Entry::PROPAGATED); + + successor.actual_rt_info ()->period = + (successor.actual_rt_info ()->period == 0) + ? (*tuple_ptr_ptr)->period + : ACE::minimum_frame_size (successor.actual_rt_info ()->period, + (*tuple_ptr_ptr)->period); + + prop_tuple_iter.advance (); } // Do not recurse on the successor node, just continue to the next successor. return 1; } - //////////////////////////////////// // class TAO_RSE_Priority_Visitor // //////////////////////////////////// // Constructor. -template <class RECONFIG_SCHED_STRATEGY> -TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>:: +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: TAO_RSE_Priority_Visitor (RtecScheduler::handle_t handles, TAO_Reconfig_Scheduler_Entry ** entry_ptr_array) : previous_entry_ (0), @@ -754,17 +799,23 @@ TAO_RSE_Priority_Visitor (RtecScheduler::handle_t handles, } -// Visit a Reconfig Scheduler Entry. This method -// assigns a priority and subpriority value to each -// entry. Priorities are assigned in increasing value -// order, with lower numbers corresponding to higher -// priorities. +// Visit a RT_Info tuple. This method assigns a priority and +// subpriority value to each tuple. Priorities are assigned in +// increasing numeric order, with lower numbers corresponding to +// higher priorities. -template <class RECONFIG_SCHED_STRATEGY> int -TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler_Entry &rse) +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int +TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::visit (TAO_Reconfig_Scheduler_Entry &rse) { int result = 0; + ACE_DEBUG ((LM_DEBUG, + "Priority_Visitor visiting %s[%d],crit=%d,period=%d\n", + rse.actual_rt_info ()->entry_point.in(), + rse.actual_rt_info ()->handle, + rse.actual_rt_info ()->criticality, + rse.actual_rt_info ()->period)); + if (previous_entry_ == 0) { // Indicate a new priority level was assigned. @@ -777,7 +828,16 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler } else { - if (RECONFIG_SCHED_STRATEGY::compare_priority (*previous_entry_, rse) == 0) + ACE_DEBUG ((LM_DEBUG, + "Previous entry %s[%d],crit=%d,period=%d\n", + previous_entry_->actual_rt_info ()->entry_point.in(), + previous_entry_->actual_rt_info ()->handle, + previous_entry_->actual_rt_info ()->criticality, + previous_entry_->actual_rt_info ()->period)); + + // Don't change priority levels on a disabled node. + if (rse.enabled_state () == RtecScheduler::RT_INFO_DISABLED + || RECONFIG_SCHED_STRATEGY::compare_priority (*previous_entry_, rse) == 0) { // Subpriority is increased at each new node. ++subpriority_; @@ -796,8 +856,7 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler // Iterate back through and adjust the subpriority levels. for (int i = 0; i <= subpriority_; ++i, ++first_subpriority_entry_) { - (*first_subpriority_entry_)-> - actual_rt_info ()-> + (*first_subpriority_entry_)->actual_rt_info ()-> preemption_subpriority += subpriority_; } @@ -805,9 +864,12 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler rse.actual_rt_info ()->preemption_subpriority = subpriority_; ++priority_; +#ifdef SCHEDULER_LOGGING + ACE_DEBUG ((LM_DEBUG, "New priority %d formed\n", priority_)); +#endif os_priority_ = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - os_priority_, - ACE_SCOPE_PROCESS); + os_priority_, + ACE_SCOPE_PROCESS); } } @@ -825,31 +887,34 @@ TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler // Finishes scheduler entry priority assignment by iterating over the // remaining entries in the last subpriority level, and adjusting // their subpriorities. -template <class RECONFIG_SCHED_STRATEGY> int -TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY>::finish () +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int +TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::finish () { // Iterate back through and adjust the subpriority levels. for (int i = 0; i <= subpriority_; ++i, ++first_subpriority_entry_) { - (*first_subpriority_entry_)-> - actual_rt_info ()-> - preemption_subpriority += subpriority_; + (*first_subpriority_entry_)->actual_rt_info ()-> + preemption_subpriority += subpriority_; } - // Indicate no new proirity level was identified. + // Indicate no new priority level was identified. return 0; } /////////////////////////////////////// -// class TAO_RSE_Utilization_Visitor // +// class TAO_Tuple_Admission_Visitor // /////////////////////////////////////// // Constructor. template <class RECONFIG_SCHED_STRATEGY> -TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::TAO_RSE_Utilization_Visitor () +TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>:: +TAO_Tuple_Admission_Visitor (const CORBA::Double & critical_utilization_threshold, + const CORBA::Double & noncritical_utilization_threshold) : critical_utilization_ (0.0), - noncritical_utilization_ (0.0) + noncritical_utilization_ (0.0), + critical_utilization_threshold_ (critical_utilization_threshold), + noncritical_utilization_threshold_ (noncritical_utilization_threshold) { } @@ -860,24 +925,63 @@ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::TAO_RSE_Utilization_Visito // operation is critical. template <class RECONFIG_SCHED_STRATEGY> int -TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Scheduler_Entry &rse) +TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_RT_Info_Tuple &t) { - CORBA::Double entry_period = rse.effective_period (); - CORBA::Double entry_time = ACE_static_cast ( - CORBA::Double, - ACE_UINT64_DBLCAST_ADAPTER (rse.actual_rt_info ()-> - worst_case_execution_time)); - CORBA::Double entry_mult = rse.effective_exec_multiplier (); + TAO_Reconfig_Scheduler_Entry *entry = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + t.volatile_token); + + // Ignore disabled tuples and entries + if (t.enabled_state () == RtecScheduler::RT_INFO_DISABLED + || entry->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + return 0; + } - if (RECONFIG_SCHED_STRATEGY::is_critical (rse)) + // Compute the current tuple's utilization. + CORBA::Double delta_utilization = + (ACE_static_cast (CORBA::Double, + t.threads) + * ACE_static_cast (CORBA::Double, + ACE_UINT64_DBLCAST_ADAPTER (entry-> + aggregate_exec_time ()))) + / ACE_static_cast (CORBA::Double, + t.period); + + // Subtract the previous tuple's utilization (if any) for the entry. + if (entry->current_admitted_tuple ()) { - this->critical_utilization_ = - (entry_mult * entry_time) / entry_period; + delta_utilization -= + (ACE_static_cast (CORBA::Double, + entry->current_admitted_tuple ()->threads) + * ACE_static_cast (CORBA::Double, + ACE_UINT64_DBLCAST_ADAPTER (entry-> + aggregate_exec_time ()))) + / ACE_static_cast (CORBA::Double, + entry->current_admitted_tuple ()->period); + } + + if (RECONFIG_SCHED_STRATEGY::is_critical (t)) + { + if (this->critical_utilization_ + this->noncritical_utilization_ + +delta_utilization + < this->critical_utilization_threshold_) + { + this->critical_utilization_ += delta_utilization; + entry->current_admitted_tuple (&t); + entry->actual_rt_info ()->period = t.period; + } } else { - this->noncritical_utilization_ = - (entry_mult * entry_time) / entry_period; + if (this->critical_utilization_ + this->noncritical_utilization_ + +delta_utilization + < this->noncritical_utilization_threshold_) + { + this->noncritical_utilization_ += delta_utilization; + entry->current_admitted_tuple (&t); + entry->actual_rt_info ()->period = t.period; + } } return 0; @@ -887,7 +991,7 @@ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::visit (TAO_Reconfig_Schedu // Accessor for utilization by critical operations. template <class RECONFIG_SCHED_STRATEGY> CORBA::Double -TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization () +TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization () { return this->critical_utilization_; } @@ -896,10 +1000,73 @@ TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization () // Accessor for utilization by noncritical operations. template <class RECONFIG_SCHED_STRATEGY> CORBA::Double -TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY>::noncritical_utilization () +TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::noncritical_utilization () { return this->noncritical_utilization_; } +// Accessor for utilization threshold for critical operations. + +template <class RECONFIG_SCHED_STRATEGY> CORBA::Double +TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::critical_utilization_threshold () +{ + return this->critical_utilization_threshold_; +} + + +// Accessor for utilization by noncritical operations. + +template <class RECONFIG_SCHED_STRATEGY> CORBA::Double +TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY>::noncritical_utilization_threshold () +{ + return this->noncritical_utilization_threshold_; +} + + +///////////////////////////////////////// +// TAO_RSE_Criticality_Propagation_Visitor // +///////////////////////////////////////// + +// Constructor. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +TAO_RSE_Criticality_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_RSE_Criticality_Propagation_Visitor + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map) + : TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> (dependency_map, rt_info_map) +{ +} + + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int +TAO_RSE_Criticality_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, + TAO_Reconfig_Scheduler_Entry &successor, + const RtecScheduler::Dependency_Info &di) +{ + ACE_UNUSED_ARG (di); + + ACE_DEBUG ((LM_DEBUG, + "Crit Prop_Visitor visiting %s[%d], successor is %s[%d]\n", + entry.actual_rt_info ()->entry_point.in(), + entry.actual_rt_info ()->handle, + successor.actual_rt_info ()->entry_point.in(), + successor.actual_rt_info ()->handle)); + + if (successor.enabled_state () != RtecScheduler::RT_INFO_DISABLED) + { + successor.actual_rt_info ()->criticality = + ace_max (entry.actual_rt_info ()->criticality, + successor.actual_rt_info ()->criticality); + ACE_DEBUG ((LM_DEBUG, + "Successor's new criticality is %d\n", + successor.actual_rt_info ()->criticality)); + } + + // Do not recurse on the successor node, just continue to the next successor. + return 1; +} + #endif /* TAO_RECONFIG_SCHED_UTILS_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h index c8543a41fa1..9ea96225a4c 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils_T.h @@ -19,9 +19,7 @@ #include /**/ "ace/pre.h" #include "ace/config-all.h" - #include "Reconfig_Sched_Utils.h" - #include "ace/Hash_Map_Manager.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -54,7 +52,7 @@ public: // dependency sets by caller or called handle. typedef ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, + TAO_RT_Info_Ex*, ACE_Hash<RtecScheduler::handle_t>, ACE_Equal_To<RtecScheduler::handle_t>, ACE_LOCK> RT_INFO_MAP; @@ -72,11 +70,11 @@ public: // design pattern. protected: - + /* WSOA merge - commented out virtual int unconditional_action (TAO_Reconfig_Scheduler_Entry &rse); // Performs an unconditional action when the entry is first reached. // Returns 0 for success, and -1 if an error occurred. - + */ virtual int precondition (TAO_Reconfig_Scheduler_Entry &rse); // Tests whether or not any conditional actions should be taken for // the entry. Returns 0 if the actions should be applied, 1 if the @@ -120,18 +118,9 @@ class TAO_RSE_DFS_Visitor : { public: - TAO_RSE_DFS_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK>& rt_info_map); + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map); // Constructor. protected: @@ -177,16 +166,8 @@ class TAO_RSE_SCC_Visitor : public: TAO_RSE_SCC_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & rt_info_map); + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map); // Constructor. int number_of_cycles (void); @@ -201,10 +182,12 @@ public: // detected cycle. protected: + /* WSOA merge - commented out virtual int unconditional_action (TAO_Reconfig_Scheduler_Entry &rse); // If the entry is a thread delineator, sets its effective period and // execution multiplier from the values in its corresponding RT_Info. // Returns 0 for success, and -1 if an error occurred. + */ virtual int precondition (TAO_Reconfig_Scheduler_Entry &rse); // Makes sure the entry has not previously been visited in the @@ -245,9 +228,39 @@ private: // currently within a previously discovered cycle. }; +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +class TAO_RSE_Reverse_Propagation_Visitor : + public TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> + // = TITLE + // A scheduler entry visitor that propagates aggregate execution + // times from called to calling nodes in a topologically ordered + // graph. + // + // = DESCRIPTION + // This class computes the aggregate execution time of each node + // and its dependants, according to its dependencies. +{ +public: + + TAO_RSE_Reverse_Propagation_Visitor + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map); + // Constructor. + +protected: + + virtual int pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, + TAO_Reconfig_Scheduler_Entry &successor, + const RtecScheduler::Dependency_Info &di); + // Propagates aggregate execution time from successor to calling + // entry. Returns 1 on success (to prevent recursion on the + // successor), and -1 on error. + +}; + template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -class TAO_RSE_Propagation_Visitor : +class TAO_RSE_Forward_Propagation_Visitor : public TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> // = TITLE // A scheduler entry visitor that propagates effective periods and @@ -260,17 +273,9 @@ class TAO_RSE_Propagation_Visitor : { public: - TAO_RSE_Propagation_Visitor - (ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & dependency_map, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & rt_info_map); + TAO_RSE_Forward_Propagation_Visitor + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map); // Constructor. int unresolved_locals (void); @@ -318,13 +323,13 @@ private: // Number of nodes with thread specification errors. }; -template <class RECONFIG_SCHED_STRATEGY> +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> class TAO_RSE_Priority_Visitor : public TAO_Reconfig_Sched_Entry_Visitor // = TITLE - // A scheduler entry visitor that assigns static priority and - // subpriority values to entries in an array already sorted in - // static <priority, subpriority> order. + // An entry visitor that assigns static priority and subpriority + // values to entries in an array already sorted in static + // <priority, subpriority> order. // // = DESCRIPTION // The visitor uses the parameterized strategy type to determine @@ -337,25 +342,24 @@ public: // Constructor. virtual int visit (TAO_Reconfig_Scheduler_Entry &); - // Visit a Reconfig Scheduler Entry. This method - // assigns a priority and subpriority value to each - // entry. Priorities are assigned in increasing value - // order, with lower numbers corresponding to higher - // priorities. Returns -1 on error, 1 if a new priority - // was assigned, or 0 otherwise. + // Visit a RT_Info tuple. This method assigns a priority and + // subpriority value to each tuple. Priorities are assigned in + // increasing value order, with lower numbers corresponding to + // higher priorities. Returns -1 on error, 1 if a new priority was + // assigned, or 0 otherwise. int finish (); - // Finishes scheduler entry priority assignment by iterating over the - // remaining entries in the last subpriority level, and adjusting + // Finishes tuple priority assignment by iterating over the + // remaining tuples in the last subpriority level, and adjusting // their subpriorities. private: TAO_Reconfig_Scheduler_Entry *previous_entry_; - // Pointer to previous entry most recently seen in the iteration. + // Pointer to previous tuple in the iteration. TAO_Reconfig_Scheduler_Entry **first_subpriority_entry_; - // Pointer to first subpriority entry in the priority level. + // Pointer to first subpriority tuple in the priority level. RtecScheduler::Preemption_Priority_t priority_; // Current priority value. @@ -374,11 +378,15 @@ private: }; template <class RECONFIG_SCHED_STRATEGY> -class TAO_RSE_Utilization_Visitor : - public TAO_Reconfig_Sched_Entry_Visitor +class TAO_Tuple_Admission_Visitor : + public TAO_RT_Info_Tuple_Visitor // = TITLE - // A scheduler entry visitor that accumulates utilization separately - // for the critical operations and the non-critical operations. + + // A tuple visitor that accumulates utilization separately for + // critical and non-critical operations. Operation tuples that + // fit within the threashold defined for their criticality level + // are admitted to the schedule, by updating the corresponding + // RT_Info with the tuple data. // // = DESCRIPTION // The visitor uses the parameterized strategy type to determine @@ -386,15 +394,15 @@ class TAO_RSE_Utilization_Visitor : { public: - TAO_RSE_Utilization_Visitor (); + TAO_Tuple_Admission_Visitor (const CORBA::Double & critical_utilization_threshold, + const CORBA::Double & noncritical_utilization_threshold); // Constructor. - virtual int visit (TAO_Reconfig_Scheduler_Entry &); - // Visit a Reconfig Scheduler Entry. This method - // determines the utilization by the entry, and - // adds it to the critical or non-critical utilization, - // depending on whether or not the strategy says the - // operation is critical. + virtual int visit (TAO_RT_Info_Tuple &); + // Visit an RT_Info tuple. This method determines the utilization by + // the tuple, and if it's admissible, updates its RT_Info and either + // the critical or non-critical utilization, depending on whether or + // not the strategy says the operation is critical. CORBA::Double critical_utilization (); // Accessor for utilization by critical operations. @@ -402,6 +410,12 @@ public: CORBA::Double noncritical_utilization (); // Accessor for utilization by noncritical operations. + CORBA::Double critical_utilization_threshold (); + // Accessor for utilization by critical operations. + + CORBA::Double noncritical_utilization_threshold (); + // Accessor for utilization by noncritical operations. + private: CORBA::Double critical_utilization_; @@ -409,8 +423,43 @@ private: CORBA::Double noncritical_utilization_; // Utilization by noncritical operations. + + CORBA::Double critical_utilization_threshold_; + // Utilization by critical operations. + + CORBA::Double noncritical_utilization_threshold_; + // Utilization by noncritical operations. }; +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +class TAO_RSE_Criticality_Propagation_Visitor : + public TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> + // = TITLE + // A scheduler entry visitor that propagates criticality + // from called to calling nodes in a topologically ordered + // graph. + // + // = DESCRIPTION + // This class computes the criticality of each node + // and its dependants, according to its dependencies. +{ +public: + + TAO_RSE_Criticality_Propagation_Visitor + (ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & dependency_map, + ACE_TYPENAME TAO_RSE_Dependency_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & rt_info_map); + // Constructor. + +protected: + + virtual int pre_recurse_action (TAO_Reconfig_Scheduler_Entry &entry, + TAO_Reconfig_Scheduler_Entry &successor, + const RtecScheduler::Dependency_Info &di); + // Propagates criticality from successor to calling + // entry. Returns 1 on success (to prevent recursion on the + // successor), and -1 on error. + +}; #if defined (__ACE_INLINE__) diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp index abe943d96c2..e9bda62714e 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp @@ -30,6 +30,10 @@ #include "Reconfig_Scheduler_T.i" #endif /* __ACE_INLINE__ */ +//#ifdef _DEBUG +//#define SCHEDULER_LOGGING 1 +//#endif + ACE_RCSID(Sched, Reconfig_Scheduler_T, "$Id$") ////////////////////////////////////////////// @@ -46,17 +50,31 @@ typedef int (*COMP_FUNC) (const void*, const void*); // Default constructor. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::TAO_Reconfig_Scheduler (int enforce_schedule_stability) +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +TAO_Reconfig_Scheduler (int enforce_schedule_stability, + const CORBA::Double & critical_utilization_threshold, + const CORBA::Double & noncritical_utilization_threshold) : config_info_count_ (0), rt_info_count_ (0), + rt_info_tuple_count_ (0), next_handle_ (1), entry_ptr_array_ (0), entry_ptr_array_size_ (0), + tuple_ptr_array_ (0), + tuple_ptr_array_size_ (0), stability_flags_ (SCHED_NONE_STABLE), enforce_schedule_stability_ (enforce_schedule_stability), dependency_count_ (0), - last_scheduled_priority_ (0) + last_scheduled_priority_ (0), + noncritical_utilization_ (0.0), + critical_utilization_ (0.0), + noncritical_utilization_threshold_ (noncritical_utilization_threshold), + critical_utilization_threshold_ (critical_utilization_threshold) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler default ctor.\n")); +#endif /* SCHEDULER_LOGGING */ } // Constructor. Initialize the scheduler from the POD_Config_Info, POD_RT_Info, @@ -71,15 +89,30 @@ TAO_Reconfig_Scheduler (int config_count, int dependency_count, ACE_Scheduler_Factory::POD_Dependency_Info dependency_infos[], u_long stability_flags, - int enforce_schedule_stability) + int enforce_schedule_stability, + const CORBA::Double & critical_utilization_threshold, + const CORBA::Double & noncritical_utilization_threshold) : config_info_count_ (0), rt_info_count_ (0), + rt_info_tuple_count_ (0), next_handle_ (1), stability_flags_ (SCHED_ALL_STABLE), enforce_schedule_stability_ (enforce_schedule_stability), dependency_count_ (0), - last_scheduled_priority_ (0) + last_scheduled_priority_ (0), + noncritical_utilization_ (0.0), + critical_utilization_ (0.0), + noncritical_utilization_threshold_ (noncritical_utilization_threshold), + critical_utilization_threshold_ (critical_utilization_threshold) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler alternative ctor.\n")); +#endif /* SCHEDULER_LOGGING */ + + // @ TODO - think about what it means to emit all the tuples as + // well as the established RT_Infos. State is more complex now. + // The init method can throw an exception, which must be caught // *inside* the constructor to be portable between compilers that // differ in whether they support native C++ exceptions. @@ -101,6 +134,38 @@ TAO_Reconfig_Scheduler (int config_count, } +// Destructor. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +~TAO_Reconfig_Scheduler () +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler dtor.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_TRY_NEW_ENV + { + this->close (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCH (CORBA::SystemException, corba_sysex) + { + ACE_ERROR ((LM_ERROR, "TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, " + "ACE_LOCK>::~TAO_Reconfig_Scheduler " + "exception: cannot close scheduler.\n")); + } + ACE_ENDTRY; + + // Delete the entry and tuple pointer arrays. + delete [] entry_ptr_array_; + delete [] tuple_ptr_array_; +} + +// Additive initialization: can be called multiple times, with +// new sets of operation, dependency, and config information. + template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> int TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: init (int config_count, @@ -117,23 +182,48 @@ init (int config_count, RtecScheduler::SYNCHRONIZATION_FAILURE, RtecScheduler::INTERNAL)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::init.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK_RETURN (-1); int result = 0; + int i = 0; +/* WSOA merge - commented out // Clear out the previous entries, if any. this->close (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); +*/ + + // Re-map the RT_Info and dependency handle values if necessary. + // Assumes that dependencies only refer to handles within the + // current set: changing that assumption would require us to use + // operation names, and the equivalent of a symbol table and + // relocating linker for RT_Infos to do this correctly in the + // general case. + if (this->next_handle_ > 1) + { + for (i = 0; i < rt_info_count; ++i) + { + rt_info [i].handle += this->next_handle_ - 1; + } + for (i = 0; i < dependency_count; ++i) + { + dependency_info [i].info_that_depends += this->next_handle_ - 1; + dependency_info [i].info_depended_on += this->next_handle_ - 1; + } + } // (Re)initialize using the new settings. // Add the passed config infos to the scheduler auto_ptr<RtecScheduler::Config_Info> new_config_info_ptr; - for (this->config_info_count_ = 0; - this->config_info_count_ < config_count; - ++this->config_info_count_) + for (i = 0; i < config_count; ++i) { RtecScheduler::Config_Info* new_config_info; ACE_NEW_THROW_EX (new_config_info, @@ -144,7 +234,7 @@ init (int config_count, // Make sure the new config info is cleaned up if we exit abruptly. ACE_AUTO_PTR_RESET (new_config_info_ptr, new_config_info, RtecScheduler::Config_Info); - result = config_info_map_.bind (config_info [config_info_count_].preemption_priority, + result = config_info_map_.bind (config_info [i].preemption_priority, new_config_info); switch (result) { @@ -161,11 +251,11 @@ init (int config_count, } new_config_info->preemption_priority = - config_info [config_info_count_].preemption_priority; + config_info [i].preemption_priority; new_config_info->thread_priority = - config_info [config_info_count_].thread_priority; + config_info [i].thread_priority; new_config_info->dispatching_type = - config_info [config_info_count_].dispatching_type; + config_info [i].dispatching_type; if (new_config_info->preemption_priority > last_scheduled_priority_) @@ -177,19 +267,30 @@ init (int config_count, // Release the auto_ptr so it does not clean // up the sucessfully bound config info. new_config_info_ptr.release (); + + // Increase the count of successfully bound config infos. + ++this->config_info_count_; } // Add RT_Infos to scheduler - RtecScheduler::RT_Info* new_rt_info; + TAO_RT_Info_Ex* new_rt_info; for (int num_rt_infos = 0; num_rt_infos < rt_info_count; ++num_rt_infos) { new_rt_info = create_i (rt_info [num_rt_infos].entry_point, - rt_info [num_rt_infos].handle + rt_info [num_rt_infos].handle, 1 ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); + if (new_rt_info == 0) + { + ACE_THROW_RETURN (RtecScheduler::INTERNAL (), -1); + } + + // Set the new info's enabled state + new_rt_info->enabled_state (rt_info [num_rt_infos].enabled); + // Fill in the portions to which the user has access. - set_i (new_rt_info, + this->set_i (new_rt_info, RtecScheduler::Criticality_t (rt_info [num_rt_infos].criticality), rt_info [num_rt_infos].worst_case_execution_time, rt_info [num_rt_infos].typical_execution_time, @@ -198,7 +299,9 @@ init (int config_count, RtecScheduler::Importance_t (rt_info [num_rt_infos].importance), rt_info [num_rt_infos].quantum, rt_info [num_rt_infos].threads, - RtecScheduler::Info_Type_t (rt_info [num_rt_infos].info_type)); + RtecScheduler::Info_Type_t (rt_info [num_rt_infos].info_type) + ACE_ENV_ARG_DECL); + ACE_CHECK_RETURN (-1); // Fill in the scheduler managed portions. new_rt_info->priority = @@ -210,16 +313,17 @@ init (int config_count, new_rt_info->volatile_token = 0; // Add dependencies between RT_Infos to scheduler. - for (this->dependency_count_ = 0; - this->dependency_count_ < dependency_count; - ++this->dependency_count_) + for (i = 0; i < dependency_count; ++i) { add_dependency_i (dependency_info [dependency_count_].info_that_depends, dependency_info [dependency_count_].info_depended_on, dependency_info [dependency_count_].number_of_calls, - dependency_info [dependency_count_].dependency_type + dependency_info [dependency_count_].dependency_type, + dependency_info [dependency_count_].enabled ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); + + ++this->dependency_count_; } } @@ -235,15 +339,22 @@ init (int config_count, template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::close (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, RtecScheduler::UNKNOWN_TASK, RtecScheduler::SYNCHRONIZATION_FAILURE)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::close.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK; - // Unbind and delete each RT_Info in the map. - RtecScheduler::RT_Info *rt_info; + // Unbind and delete each RT_Info in the map: this also cleans up + // all the entries and tuples associated with each RT_Info. + TAO_RT_Info_Ex *rt_info; RtecScheduler::handle_t handle; while (rt_info_map_.current_size () > 0) { @@ -252,11 +363,15 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::close (ACE_ENV_SINGLE { if (rt_info_tree_.unbind (rt_info->entry_point) == 0) { + // Delete the entry associated with the RT_Info, then + // the RT_Info itself. + delete ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + rt_info->volatile_token); delete rt_info; } else { - ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + ACE_THROW (RtecScheduler::INTERNAL ()); } } else @@ -277,23 +392,60 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::close (ACE_ENV_SINGLE } else { - ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + + // Delete each dependency set in the caller map + RtecScheduler::Dependency_Set *dependency_set; + while (calling_dependency_set_map_.current_size () > 0) + { + handle = (*calling_dependency_set_map_.begin ()).ext_id_; + if (calling_dependency_set_map_.unbind (handle, dependency_set) == 0) + { + delete dependency_set; + } + else + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + + // Delete each dependency set in the called map + while (called_dependency_set_map_.current_size () > 0) + { + handle = (*called_dependency_set_map_.begin ()).ext_id_; + if (called_dependency_set_map_.unbind (handle, dependency_set) == 0) + { + delete dependency_set; + } + else + { + ACE_THROW (RtecScheduler::INTERNAL ()); } } // Zero out the scheduling entry pointer array but do not deallocate it. if (entry_ptr_array_size_ > 0) { - ACE_OS::memset (entry_ptr_array_, 0, - sizeof (TAO_Reconfig_Scheduler_Entry *) * - entry_ptr_array_size_); + ACE_OS::memset (this->entry_ptr_array_, 0, + sizeof (TAO_Reconfig_Scheduler_Entry *) + * this->entry_ptr_array_size_); } + // Zero out the scheduling entry pointer array but do not deallocate it. + if (tuple_ptr_array_size_ > 0) + { + ACE_OS::memset (this->tuple_ptr_array_, 0, + sizeof (TAO_RT_Info_Tuple *) + * this->tuple_ptr_array_size_); + } // Finally, reset the entry counts and start over with the lowest // handle number. this->config_info_count_ = 0; this->rt_info_count_ = 0; + this->rt_info_tuple_count_ = 0; this->next_handle_ = 1; } @@ -312,12 +464,17 @@ create (const char *entry_point RtecScheduler::INTERNAL, RtecScheduler::SYNCHRONIZATION_FAILURE)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::create.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK_RETURN (0); RtecScheduler::handle_t handle = next_handle_; - create_i (entry_point, handle ACE_ENV_ARG_PARAMETER); + create_i (entry_point, handle, 0 ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (handle); // Set affected stability flags. @@ -340,6 +497,11 @@ lookup (const char * entry_point RtecScheduler::UNKNOWN_TASK, RtecScheduler::SYNCHRONIZATION_FAILURE)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::lookup.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK_RETURN (0); @@ -363,12 +525,17 @@ get (RtecScheduler::handle_t handle RtecScheduler::UNKNOWN_TASK, RtecScheduler::SYNCHRONIZATION_FAILURE)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::get.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK_RETURN (0); // Find the RT_Info in the hash map. - RtecScheduler::RT_Info *rt_info = 0; + TAO_RT_Info_Ex *rt_info = 0; if (rt_info_map_.find (handle, rt_info) != 0) { ACE_THROW_RETURN (RtecScheduler::UNKNOWN_TASK (), 0); @@ -408,91 +575,378 @@ set (RtecScheduler::handle_t handle, RtecScheduler::INTERNAL, RtecScheduler::SYNCHRONIZATION_FAILURE)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK; // Look up the RT_Info by its handle, throw an exception if it's not there. - RtecScheduler::RT_Info *rt_info_ptr = 0; + TAO_RT_Info_Ex *rt_info_ptr = 0; if (rt_info_map_.find (handle, rt_info_ptr) != 0) { ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); } + if (rt_info_ptr == 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops. + if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED); + } + // Call the internal set method. this->set_i (rt_info_ptr, criticality, time, typical_time, cached_time, period, importance, quantum, - threads, info_type); + threads, info_type ACE_ENV_ARG_PARAMETER); + ACE_CHECK; - // Update stability flags, based on changes to operation characteristics. - // Reference the associated scheduling entry: the double cast is - // needed to ensure that the size of the pointer and the size of the - // stored magic cookie are the same (see the definition of - // ptrdiff_t in ACE to grok how this works portably). - TAO_Reconfig_Scheduler_Entry *sched_entry_ptr = - ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, - rt_info_ptr->volatile_token); + // Update stability flags. For now, just mark everything as unstable. + // @@ TODO - revisit this and see if we can efficiently detect when + // changes do not affect stability of various aspects. + this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE; + this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE; + this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE; + + return; +} - if (0 == sched_entry_ptr) +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +reset (RtecScheduler::handle_t handle, + RtecScheduler::Criticality_t criticality, + RtecScheduler::Time time, + RtecScheduler::Time typical_time, + RtecScheduler::Time cached_time, + RtecScheduler::Period_t period, + RtecScheduler::Importance_t importance, + RtecScheduler::Quantum_t quantum, + CORBA::Long threads, + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::reset.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + // Look up the RT_Info by its handle, throw an exception if it's not there. + TAO_RT_Info_Ex *rt_info_ptr = 0; + if (rt_info_map_.find (handle, rt_info_ptr) != 0) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + if (rt_info_ptr == 0) { ACE_THROW (RtecScheduler::INTERNAL ()); } - // Test the utilization difference between the old and new values. - if ((sched_entry_ptr->orig_rt_info_data ().period != rt_info_ptr->period - && sched_entry_ptr->orig_rt_info_data ().worst_case_execution_time - != rt_info_ptr->worst_case_execution_time)) + // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops. + if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_NON_VOLATILE) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + else { - CORBA::Double orig_time = ACE_static_cast ( - CORBA::Double, - ACE_UINT64_DBLCAST_ADAPTER (sched_entry_ptr-> - orig_rt_info_data (). - worst_case_execution_time)); + // Reset the RT_Info. + rt_info_ptr->reset (TAO_Reconfig_Scheduler_Entry::ORIGINAL + | TAO_Reconfig_Scheduler_Entry::PROPAGATED); - CORBA::Double orig_period = - sched_entry_ptr->orig_rt_info_data ().period; + rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED); + } - CORBA::Double new_time = ACE_static_cast ( - CORBA::Double, - ACE_UINT64_DBLCAST_ADAPTER (rt_info_ptr-> - worst_case_execution_time)); + // Refresh the internal tuple pointer array. + this->refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; - CORBA::Double new_period = rt_info_ptr->period; + // Then call the internal set method. + this->set_i (rt_info_ptr, criticality, time, typical_time, + cached_time, period, importance, quantum, + threads, info_type ACE_ENV_ARG_PARAMETER); + ACE_CHECK; - if ((orig_time / orig_period) - (new_time / new_period) > DBL_EPSILON - || (orig_time / orig_period) - (new_time / new_period) < DBL_EPSILON) + + // Update stability flags. For now, just mark everything as unstable. + // @@ TODO - revisit this and see if we can efficiently detect when + // changes do not affect stability of various aspects. + this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE; + this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE; + this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE; + + return; +} + + + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +set_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_seq.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + for (u_int i = 0; i < infos.length (); ++i) + { + // Look up the RT_Info by its handle, throw an exception if it's not there. + TAO_RT_Info_Ex *rt_info_ptr = 0; + if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0) { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + + if (rt_info_ptr == 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops. + if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED); + } + + // Call the internal set method. + this->set_i (rt_info_ptr, + infos[i].criticality, + infos[i].worst_case_execution_time, + infos[i].typical_execution_time, + infos[i].cached_execution_time, + infos[i].period, + infos[i].importance, + infos[i].quantum, + infos[i].threads, + infos[i].info_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } + + // Update stability flags. For now, just mark everything as unstable. + // @@ TODO - revisit this and see if we can efficiently detect when + // changes do not affect stability of various aspects. this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE; + this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE; + this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE; + + return; +} + + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +reset_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::reset_seq.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + TAO_RT_Info_Ex *rt_info_ptr = 0; + u_int i; + + for (i = 0; i < infos.length (); ++i) + { + // Look up the RT_Info by its handle, throw an exception if it's not there. + if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + + // Enable the RT_Info. Does not modify NON_VOLATILE ops. + if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_NON_VOLATILE) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + else + { + // Reset the RT_Info. + rt_info_ptr->reset (TAO_Reconfig_Scheduler_Entry::ORIGINAL + | TAO_Reconfig_Scheduler_Entry::PROPAGATED); + + rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED); } } - // Test the priority difference between the old and new info. - if (RECONFIG_SCHED_STRATEGY::priority_diff (sched_entry_ptr-> - orig_rt_info_data (), - *rt_info_ptr) != 0) + // Refresh the internal tuple pointer array. + this->refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + for (i = 0; i < infos.length (); ++i) + { + // Look up the RT_Info by its handle, throw an exception if it's not there. + if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + + if (rt_info_ptr == 0) { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Call the internal set method. + this->set_i (rt_info_ptr, + infos[i].criticality, + infos[i].worst_case_execution_time, + infos[i].typical_execution_time, + infos[i].cached_execution_time, + infos[i].period, + infos[i].importance, + infos[i].quantum, + infos[i].threads, + infos[i].info_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } + + // Update stability flags. For now, just mark everything as unstable. + // @@ TODO - revisit this and see if we can efficiently detect when + // changes do not affect stability of various aspects. + this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE; this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE; + this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE; + + return; +} + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +replace_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::replace_seq.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + TAO_RT_Info_Ex *rt_info_ptr = 0; + + for (ACE_TYPENAME RT_INFO_MAP::iterator info_iter (this->rt_info_map_); + info_iter.done () == 0; + ++info_iter) + { + // Get a pointer to each registered RT_Info. + rt_info_ptr = (*info_iter).int_id_; + if (! rt_info_ptr) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + switch (rt_info_ptr->enabled_state ()) + { + case RtecScheduler::RT_INFO_ENABLED: + + // Disable enabled RT_Infos. + rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_DISABLED); + + // Reset Enabled and Non-Volatile RT_Infos. + rt_info_ptr->reset (TAO_Reconfig_Scheduler_Entry::ORIGINAL + | TAO_Reconfig_Scheduler_Entry::PROPAGATED); + break; + + // Intentional fall-through to ignore non-volatile RT_Infos + case RtecScheduler::RT_INFO_NON_VOLATILE: + + default: // Ignore disabled RT_Infos. + break; + } } - // If the period changed, look up the handle in the calling - // dependency map and see if there is anything there: if so, - // the propagation is unstable. - if (sched_entry_ptr->orig_rt_info_data ().period - != rt_info_ptr->period) + // Zero out the tuple pointer array, set count to zero + ACE_OS::memset (this->tuple_ptr_array_, 0, + sizeof (TAO_RT_Info_Tuple *) + * this->tuple_ptr_array_size_); + this->rt_info_tuple_count_ = 0; + + for (u_int i = 0; i < infos.length (); ++i) { - // Get the dependency set for the current entry. - RtecScheduler::Dependency_Set *dependency_set = 0; - int result = calling_dependency_set_map_.find (rt_info_ptr->handle, - dependency_set); - if (result == 0 && dependency_set->length () > 0) + // Look up the RT_Info by its handle, throw an exception if it's not there. + if (rt_info_map_.find (infos[i].handle, rt_info_ptr) != 0) { - this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE; + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + + if (rt_info_ptr == 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); } + + // Enable the RT_Info if it was disabled. Does not modify NON_VOLATILE ops. + if (rt_info_ptr->enabled_state () == RtecScheduler::RT_INFO_DISABLED) + { + rt_info_ptr->enabled_state (RtecScheduler::RT_INFO_ENABLED); + } + + // Call the internal set method. + this->set_i (rt_info_ptr, + infos[i].criticality, + infos[i].worst_case_execution_time, + infos[i].typical_execution_time, + infos[i].cached_execution_time, + infos[i].period, + infos[i].importance, + infos[i].quantum, + infos[i].threads, + infos[i].info_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; } - // Update the stored operation characteristics values in the scheduling entry - sched_entry_ptr->orig_rt_info_data (*rt_info_ptr); + // Update stability flags. For now, just mark everything as unstable. + // @@ TODO - revisit this and see if we can efficiently detect when + // changes do not affect stability of various aspects. + this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE; + this->stability_flags_ |= SCHED_PRIORITY_NOT_STABLE; + this->stability_flags_ |= SCHED_PROPAGATION_NOT_STABLE; + + return; } @@ -523,7 +977,11 @@ priority (RtecScheduler::handle_t handle, ACE_THROW (RtecScheduler::NOT_SCHEDULED ()); } - RtecScheduler::RT_Info *rt_info = 0; + // CDG - TBD - address priority "generations" i.e., after an + // adaptive transition. For now, go ahead and return whatever + // priority is there, even if the RT_Info_Ex is disabled. + + TAO_RT_Info_Ex *rt_info = 0; if (rt_info_map_.find (handle, rt_info) != 0) { ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); @@ -551,6 +1009,11 @@ entry_point_priority (const char * entry_point, RtecScheduler::SYNCHRONIZATION_FAILURE, RtecScheduler::NOT_SCHEDULED)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::entry_point_priority.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK; @@ -582,13 +1045,18 @@ add_dependency (RtecScheduler::handle_t handle /* RT_Info that has the dependenc RtecScheduler::SYNCHRONIZATION_FAILURE, RtecScheduler::UNKNOWN_TASK)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::add_dependency.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK; // Delegate to the internal method. - add_dependency_i (handle, dependency, number_of_calls, - dependency_type ACE_ENV_ARG_PARAMETER); + add_dependency_i (handle, dependency, number_of_calls, dependency_type, + RtecBase::DEPENDENCY_ENABLED ACE_ENV_ARG_DECL); ACE_CHECK; // Since the call graph topology has changed, set *all* @@ -598,6 +1066,183 @@ add_dependency (RtecScheduler::handle_t handle /* RT_Info that has the dependenc } +// This method removes a dependency between two RT_Infos. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +remove_dependency (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::remove_dependency.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + // Delegate to the internal method. + remove_dependency_i (handle, dependency, number_of_calls, + dependency_type ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Since the call graph topology has changed, set *all* + // stability flags before incrementing the dependency count. + this->stability_flags_ |= SCHED_UTILIZATION_NOT_STABLE; + --dependency_count_; +} + +// This method sets the enable state for a dependency between two RT_Infos. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +set_dependency_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_dependency_enable_state.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + // Delegate to the internal method. + set_dependency_enable_state_i (handle, dependency, number_of_calls, + dependency_type, enabled ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + + +// This method sets the enable state of a sequence of dependencies. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_dependency_enable_state_seq.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + // Delegate to the internal method for each dependency in the sequence. + for (u_int i = 0; i < dependencies.length (); ++i) + { + set_dependency_enable_state_i (dependencies[i].rt_info, + dependencies[i].rt_info_depended_on, + dependencies[i].number_of_calls, + dependencies[i].dependency_type, + dependencies[i].enabled + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} + + +// This method enables or disables an RT_Info. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +set_rt_info_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::RT_Info_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_rt_info_enable_state.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + // Look up the RT_Info by its handle, throw an exception if it's not there. + TAO_RT_Info_Ex *rt_info_ptr = 0; + if (rt_info_map_.find (handle, rt_info_ptr) != 0) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + + if (rt_info_ptr == 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Enable the RT_Info. + rt_info_ptr->enabled_state (enabled); +} + + +// This method enables or disables a sequence of RT_Infos. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_rt_info_enable_state_seq.\n")); +#endif /* SCHEDULER_LOGGING */ + + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + for (u_int i = 0; i < pair_set.length (); ++i) + { + // Look up the RT_Info by its handle, throw an exception if it's not there. + TAO_RT_Info_Ex *rt_info_ptr = 0; + if (rt_info_map_.find (pair_set[i].handle, rt_info_ptr) != 0) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + + if (rt_info_ptr == 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Enable the RT_Info. + rt_info_ptr->enabled_state (pair_set[i].enabled); + } +} + + // If information has been added or changed since the last stable // schedule was computed, this method causes scheduling information // to be computed for all registered RT_Infos. If the schedule is @@ -609,6 +1254,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: compute_scheduling (CORBA::Long minimum_priority, CORBA::Long maximum_priority, RtecScheduler::RT_Info_Set_out infos, + RtecScheduler::Dependency_Set_out dependencies, RtecScheduler::Config_Info_Set_out configs, RtecScheduler::Scheduling_Anomaly_Set_out anomalies ACE_ENV_ARG_DECL) @@ -620,6 +1266,53 @@ compute_scheduling (CORBA::Long minimum_priority, RtecScheduler::INTERNAL, RtecScheduler::DUPLICATE_NAME)) { + // Delegates to recompute_scheduling and the respective accessors. + this->recompute_scheduling (minimum_priority, maximum_priority, + anomalies ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->get_rt_info_set (infos ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->get_dependency_set (dependencies ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->get_config_info_set (configs ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + +#if defined (SCHEDULER_DUMP) + ACE_DEBUG ((LM_TRACE, "Schedule prepared.\n")); + ACE_DEBUG ((LM_TRACE, "Dumping to stdout.\n")); + ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), *(dependencies.ptr()), *(configs.ptr()), + *(anomalies.ptr()), 0); + ACE_DEBUG ((LM_TRACE, "Dump done.\n")); +#endif // SCHEDULER_DUMP + + return; +} + +// Recomputes the scheduling priorities, etc. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +recompute_scheduling (CORBA::Long minimum_priority, + CORBA::Long maximum_priority, + RtecScheduler::Scheduling_Anomaly_Set_out anomalies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UTILIZATION_BOUND_EXCEEDED, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, + RtecScheduler::TASK_COUNT_MISMATCH, + RtecScheduler::INTERNAL, + RtecScheduler::DUPLICATE_NAME)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::compute_scheduling.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK; @@ -631,43 +1324,114 @@ compute_scheduling (CORBA::Long minimum_priority, // If everything is already up to date, we're done. if (SCHED_ALL_STABLE == stability_flags_) { + + // Must always provide a value for an out parameter + ACE_NEW_THROW_EX (anomalies, + RtecScheduler::Scheduling_Anomaly_Set (0), + CORBA::NO_MEMORY ()); + ACE_CHECK; return; } // @@ TO DO - use try/catch blocks to catch exceptions and add anomalies // to scheduling anomaly set, and then perhaps rethrow) - if (this->stability_flags_ & SCHED_PROPAGATION_NOT_STABLE) + if ((this->stability_flags_ & SCHED_PROPAGATION_NOT_STABLE) + || (this->stability_flags_ & SCHED_UTILIZATION_NOT_STABLE)) { + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "1_pre_crit_traverse.txt"); +#endif + + // Traverse criticality dependency graph, assigning a + // topological ordering and identifying threads. + crit_dfs_traverse_i (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "2_crit_dfs_traverse_i.txt"); +#endif + + // Propagate criticalities. + propagate_criticalities_i (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "3_propagate_criticalities_i.txt"); +#endif + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "4_pre_traverse.txt"); +#endif + // Traverse dependency graph, assigning a topological ordering and identifying threads. dfs_traverse_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK; + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "5_dfs_traverse_i.txt"); +#endif // Sort an array of RT_info handles in topological order, check // for loops using the strongly connected components algorithm. detect_cycles_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK; - + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "6_detect_cycles_i.txt"); +#endif + + // Perform admission control for task delineator rate tuples. + perform_admission_i (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "7_perform_admission_i.txt"); +#endif + // Propagate effective execution time and period, set total frame size. propagate_characteristics_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK; + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "8_propagate_characteristics_i.txt"); +#endif + } if (this->stability_flags_ & SCHED_PRIORITY_NOT_STABLE) { - // Sort operations by urgency (done by strategy), then - // assign priorities and subpriorities in one pass. - // Sets last scheduled priority. + // Sort operations by urgency, then assign priorities and + // subpriorities in one pass. Sets last scheduled priority and + // last feasible priority. assign_priorities_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK; + +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_entries(entry_ptr_array_, + this->rt_info_count_, + "9_assign_priorities_i.txt"); +#endif + } - if (this->stability_flags_ & SCHED_UTILIZATION_NOT_STABLE) - { - // Compute utilization, set last feasible priority. - compute_utilization_i (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } // @@ TODO: record any scheduling anomalies in a set within the scheduler, // storing the maximum severity level recorded so far. @@ -679,7 +1443,27 @@ compute_scheduling (CORBA::Long minimum_priority, ACE_CHECK; } + + // Set stability flags last. + this->stability_flags_ = SCHED_ALL_STABLE; + return; +} + + +// Returns the set of rt_infos, with their assigned priorities (as +// of the last schedule re-computation). + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +get_rt_info_set (RtecScheduler::RT_Info_Set_out infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +{ // return the set of scheduled RT_Infos + if (infos.ptr () == 0) { ACE_NEW_THROW_EX (infos, @@ -687,17 +1471,81 @@ compute_scheduling (CORBA::Long minimum_priority, CORBA::NO_MEMORY ()); ACE_CHECK; } + infos->length (this->rt_info_count_); - RtecScheduler::RT_Info* rt_info = 0; + TAO_RT_Info_Ex* rt_info = 0; for (ACE_TYPENAME RT_INFO_MAP::iterator info_iter (this->rt_info_map_); info_iter.done () == 0; ++info_iter) { + // TODO - rethink this: is it more useful to only return the *enabled* RT_Infos? rt_info = (*info_iter).int_id_; infos[ACE_static_cast (CORBA::ULong, rt_info->handle - 1)] = *rt_info; } - // return the set of scheduled Config_Infos + return; +} + + +// Returns the set of rt_infos, with their assigned priorities (as +// of the last schedule re-computation). + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +get_dependency_set (RtecScheduler::Dependency_Set_out dependencies + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +{ + // Return the set of dependencies: just need to iterate over one of the maps. + + if (dependencies.ptr () == 0) + { + dependencies = new RtecScheduler::Dependency_Set (this->dependency_count_); + } + dependencies->length (this->dependency_count_); + RtecScheduler::Dependency_Set *dependency_set = 0; + int i = 0; + for (ACE_TYPENAME DEPENDENCY_SET_MAP::iterator + dependency_iter (this->called_dependency_set_map_); + dependency_iter.done () == 0 && i < this->dependency_count_; + ++dependency_iter) + { + dependency_set = (*dependency_iter).int_id_; + for (u_int j = 0; + j < dependency_set->length () && i < this->dependency_count_; + ++i, ++j) + { + (* dependencies) [i] = (*dependency_set) [j]; + // For two-way calls, swap the handles (stored in reverse order in the called map) + if ((* dependencies) [i].dependency_type == RtecBase::TWO_WAY_CALL) + { + (* dependencies) [i].rt_info = (* dependency_set) [j].rt_info_depended_on; + (* dependencies) [i].rt_info_depended_on = (* dependency_set) [j].rt_info; + } + } + } + + return; +} + + +// Returns the set of config_infos, describing the appropriate +// number, types, and priority levels for the dispatching lanes. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +get_config_info_set (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)) +{ + // Return the set of scheduled Config_Infos. + if (configs.ptr () == 0) { ACE_NEW_THROW_EX (configs, @@ -706,6 +1554,7 @@ compute_scheduling (CORBA::Long minimum_priority, CORBA::NO_MEMORY ()); ACE_CHECK; } + configs->length (this->config_info_count_); RtecScheduler::Config_Info* config_info = 0; for (ACE_TYPENAME CONFIG_INFO_MAP::iterator config_iter (this->config_info_map_); @@ -716,14 +1565,6 @@ compute_scheduling (CORBA::Long minimum_priority, configs[ACE_static_cast (CORBA::ULong, config_info->preemption_priority)] = *config_info; } - ACE_DEBUG ((LM_DEBUG, "Schedule prepared.\n")); - ACE_DEBUG ((LM_DEBUG, "Dumping to stdout.\n")); - ACE_Scheduler_Factory::dump_schedule (*(infos.ptr()), *(configs.ptr()), - *(anomalies.ptr()), 0); - ACE_DEBUG ((LM_DEBUG, "Dump done.\n")); - - // Set stability flags last. - this->stability_flags_ = SCHED_ALL_STABLE; return; } @@ -743,6 +1584,11 @@ dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority, RtecScheduler::SYNCHRONIZATION_FAILURE, RtecScheduler::UNKNOWN_PRIORITY_LEVEL)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::dispatch_configuration.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK; @@ -773,11 +1619,16 @@ dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority, template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> RtecScheduler::Preemption_Priority_t TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: -last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL) +last_scheduled_priority (ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::SYNCHRONIZATION_FAILURE, RtecScheduler::NOT_SCHEDULED)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::last_scheduled_priority.\n")); +#endif /* SCHEDULER_LOGGING */ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, RtecScheduler::SYNCHRONIZATION_FAILURE ()); ACE_CHECK_RETURN (0); @@ -835,37 +1686,52 @@ get_config_infos (RtecScheduler::Config_Info_Set_out configs } } -// Internal method to create an RT_Info. If it does not exist, a new RT_Info is -// created and inserted into the schedule, and the handle of the new -// RT_Info is returned. If the RT_Info already exists, an exception -// is thrown. + +// Internal method to create an RT_Info. If it does not exist, a new +// RT_Info is created and inserted into the schedule, and the handle +// of the new RT_Info is returned. If the RT_Info already exists, +// then if the ignore_duplicates flag is set, the handle is simply +// returned; otherwise, an exception is thrown. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -RtecScheduler::RT_Info * +TAO_RT_Info_Ex * TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: create_i (const char *entry_point, - RtecScheduler::handle_t handle + RtecScheduler::handle_t handle, + int ignore_duplicates ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::DUPLICATE_NAME, RtecScheduler::INTERNAL)) { - RtecScheduler::RT_Info* new_rt_info = 0; +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::create_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + TAO_RT_Info_Ex* new_rt_info = 0; TAO_Reconfig_Scheduler_Entry* new_sched_entry = 0; int result = 0; + // If we're ignoring duplicates, check for and return the existing + // entry if there is one. + if (ignore_duplicates + && rt_info_map_.find (handle, new_rt_info) == 0) + { + return new_rt_info; + } + // Create a new scheduling entry for the RT_Info. ACE_NEW_THROW_EX (new_rt_info, - RtecScheduler::RT_Info, + TAO_RT_Info_Ex, CORBA::NO_MEMORY ()); ACE_CHECK_RETURN (0); // Make sure the new scheduling entry is cleaned up if we exit abruptly. - auto_ptr<RtecScheduler::RT_Info> new_rt_info_ptr (new_rt_info); + auto_ptr<TAO_RT_Info_Ex> new_rt_info_ptr (new_rt_info); // Set some reasonable default values, and store the passed ones. - TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::init_rt_info (*new_rt_info); - new_rt_info->entry_point = CORBA::string_dup(entry_point); + new_rt_info->entry_point = CORBA::string_dup (entry_point); new_rt_info->handle = handle; // Bind the new RT_Info to its handle, in the RT_Info map. @@ -878,7 +1744,16 @@ create_i (const char *entry_point, case 1: // Tried to bind an operation that was already in the map. + if (ignore_duplicates) + { + // Should never get here unless something is badly awry. + ACE_THROW_RETURN (RtecScheduler::INTERNAL (), 0); + } + else + { + // Already bound, and we're not ignoring duplicates. ACE_THROW_RETURN (RtecScheduler::DUPLICATE_NAME (), 0); + } default: break; @@ -911,74 +1786,27 @@ create_i (const char *entry_point, // Make sure the new scheduling entry is cleaned up if we exit abruptly. auto_ptr<TAO_Reconfig_Scheduler_Entry> new_sched_entry_ptr (new_sched_entry); - // Make sure there is room in the scheduling entry pointer array: - // expand the array eagerly, to minimize memory allocation overhead - - if (this->entry_ptr_array_size_ <= handle) - { - if (entry_ptr_array_size_ > 0) - { - // Store previous array size. - long new_size = entry_ptr_array_size_; - - // Double the size of the array until sufficient. - do - { - new_size *= 2; - } - while (new_size <= handle); - - // Allocate the new array of the proper size, zero it out. - - TAO_Reconfig_Scheduler_Entry ** new_array; - ACE_NEW_THROW_EX (new_array, - TAO_Reconfig_Scheduler_Entry * [new_size], - CORBA::NO_MEMORY ()); - - ACE_OS::memset (new_array, 0, - sizeof (TAO_Reconfig_Scheduler_Entry *) * - new_size); - - // Copy in the previous array. - ACE_OS::memcpy (new_array, entry_ptr_array_, - sizeof (TAO_Reconfig_Scheduler_Entry *) * - entry_ptr_array_size_); + // Maintain the size of the entry pointer array. + ::maintain_scheduling_array (entry_ptr_array_, entry_ptr_array_size_, + handle ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); - // Free the old array and swap to point to the new one. - delete [] entry_ptr_array_; - entry_ptr_array_ = new_array; - entry_ptr_array_size_ = new_size; - } - else - { - // For the first allocation, just start with sufficient space - // for the handle that was given. - ACE_NEW_THROW_EX (entry_ptr_array_, - TAO_Reconfig_Scheduler_Entry * [handle + 1], - CORBA::NO_MEMORY ()); - entry_ptr_array_size_ = handle + 1; - } - } - // Atore in the scheduling entry pointer array. + // Store the new entry in the scheduling entry pointer array. entry_ptr_array_ [handle - 1] = new_sched_entry; - // Store a pointer to the scheduling entry in the scheduling entry - // pointer array and in the RT_Info: the double cast is needed to - // ensure that the size of the pointer and the size of the stored - // magic cookie are the same (see the definition of ptrdiff_t in - // ACE to grok how this works portably). - new_rt_info->volatile_token = - ACE_static_cast (CORBA::ULongLong, - ACE_reinterpret_cast (ptrdiff_t, - new_sched_entry)); - // Release the auto pointers, so their destruction does not // remove the new rt_info that is now in the map and tree, // or the scheduling entry attached to the rt_info. new_rt_info_ptr.release (); new_sched_entry_ptr.release (); + // Connect the entry to the RT_Info. + new_rt_info->volatile_token = + ACE_static_cast (CORBA::ULongLong, + ACE_reinterpret_cast (ptrdiff_t, + new_sched_entry)); + // With everything safely registered in the map and tree, just // update the next handle and info counter and return the new info. if (handle >= this->next_handle_) @@ -993,12 +1821,11 @@ create_i (const char *entry_point, return new_rt_info; } - // Internal method to set characteristics of the passed RT_Info. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: -set_i (RtecScheduler::RT_Info *rt_info, +set_i (TAO_RT_Info_Ex *rt_info, RtecScheduler::Criticality_t criticality, RtecScheduler::Time time, RtecScheduler::Time typical_time, @@ -1007,8 +1834,26 @@ set_i (RtecScheduler::RT_Info *rt_info, RtecScheduler::Importance_t importance, RtecScheduler::Quantum_t quantum, CORBA::Long threads, - RtecScheduler::Info_Type_t info_type) + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // Do not allow conjunction nodes for now. + if (info_type == RtecScheduler::CONJUNCTION) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT("Conjunction Nodes are not supported currently."))); + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + + // Set the base RT_Info to have the attributes of the latest values. rt_info->criticality = criticality; rt_info->worst_case_execution_time = time; rt_info->typical_execution_time = typical_time; @@ -1018,9 +1863,68 @@ set_i (RtecScheduler::RT_Info *rt_info, rt_info->quantum = quantum; rt_info->threads = threads; rt_info->info_type = info_type; + + // If a rate is advertised, create a separate tuple for that rate. + if (period > 0) + { + TAO_Reconfig_Scheduler_Entry * rse_ptr = + ACE_LONGLONG_TO_PTR (TAO_Reconfig_Scheduler_Entry *, + rt_info->volatile_token); +// ACE_DEBUG((LM_DEBUG, "Updating or inserting tuple for RT_Info: %d, entry_ptr: %x\n", rt_info->handle, rse_ptr)); + if (rse_ptr == 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + int result = rse_ptr->update_tuple (*rt_info); + if (result < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + else if (result == 0) // We did not find an existing tuple. + { + // Create a new RT_Info tuple from the passed RT_Info. + TAO_RT_Info_Tuple *tuple_ptr = 0; + ACE_NEW_THROW_EX (tuple_ptr, + TAO_RT_Info_Tuple (*rt_info), + CORBA::NO_MEMORY ()); + ACE_CHECK; + + + // Make sure the new tuple is cleaned up if we exit abruptly. + auto_ptr<TAO_RT_Info_Tuple> tuple_auto_ptr (tuple_ptr); + +// ACE_DEBUG((LM_DEBUG, "Tuple not found. Inserting new tuple for RT_Info: %d, entry_ptr: 0x%x, tuple_ptr: 0x%x\n", +// rt_info->handle, +// rse_ptr, +// tuple_ptr)); + // Add the tuple to the entry's original tuple set + result = rse_ptr->insert_tuple (*tuple_ptr); + if (result < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Maintain the size of the entry pointer array. + ::maintain_scheduling_array (tuple_ptr_array_, + tuple_ptr_array_size_, + rt_info_tuple_count_ + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Store the new tuple in the tuple pointer array. + tuple_ptr_array_ [this->rt_info_tuple_count_] = tuple_ptr; + + ++this->rt_info_tuple_count_; + + // All is well: release the auto pointer's hold on the tuple. + tuple_auto_ptr.release (); + } + } } + // Internal method to lookup a handle for an RT_Info, and return its // handle, or an error value if it's not present. @@ -1032,7 +1936,12 @@ lookup_i (const char * entry_point ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::UNKNOWN_TASK)) { - RtecScheduler::RT_Info *rt_info = 0; +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::lookup_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + TAO_RT_Info_Ex *rt_info = 0; if (rt_info_tree_.find (entry_point, rt_info) != 0) { ACE_THROW_RETURN (RtecScheduler::UNKNOWN_TASK (), 0); @@ -1063,7 +1972,7 @@ priority_i (RtecScheduler::handle_t handle, ACE_THROW (RtecScheduler::NOT_SCHEDULED ()); } - RtecScheduler::RT_Info *rt_info = 0; + TAO_RT_Info_Ex *rt_info = 0; if (rt_info_map_.find (handle, rt_info) != 0) { ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); @@ -1075,19 +1984,25 @@ priority_i (RtecScheduler::handle_t handle, } -// This method registers a dependency between two RT_Infos. +// This internal method registers a dependency between two RT_Infos. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the dependency */, RtecScheduler::handle_t dependency /* RT_Info on which it depends */, CORBA::Long number_of_calls, - RtecScheduler::Dependency_Type_t dependency_type + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL, RtecScheduler::UNKNOWN_TASK)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::add_dependency_i.\n")); +#endif /* SCHEDULER_LOGGING */ + // All dependencies are mapped by both the calling and called // operation handles, so that a topological sort can be performed // once over both one-way and two-way dependencies. The dependency @@ -1106,7 +2021,8 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende dependency, // called handle calling_dependency_set_map_, // calling map number_of_calls, - dependency_type + dependency_type, + enabled ACE_ENV_ARG_PARAMETER); ACE_CHECK; @@ -1115,10 +2031,11 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende handle, // calling handle called_dependency_set_map_, // called map number_of_calls, - dependency_type + dependency_type, + enabled ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + break; // In a one-way call, the called operation depends on the @@ -1130,7 +2047,8 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende handle, // called handle calling_dependency_set_map_, // calling map number_of_calls, - dependency_type + dependency_type, + enabled ACE_ENV_ARG_PARAMETER); ACE_CHECK; @@ -1139,10 +2057,113 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende dependency, // calling handle called_dependency_set_map_, // called map number_of_calls, - dependency_type + dependency_type, + enabled ACE_ENV_ARG_PARAMETER); ACE_CHECK; + break; + + default: + + // There should not be any other kinds of dependencies. + ACE_THROW (RtecScheduler::INTERNAL ()); + } + + // Add the criticality dependency map entry. + // If A---TW--->B and C---OW--->D, the add_dependency_calls + // would look like this + // add_dependency (A, B, TW) + // add_dependency (D, C, OW) + // Neither of the other two maps capture these dependencies + // A depends on B and D depends on C. + // The calling dependency map captures + // A calls B and C calls D. + // The called dependency map captures + // B called by A and D called by C. + + map_dependency_i (handle, // calling handle + dependency, // called handle + crit_dependency_set_map_,// crit dependency map + number_of_calls, + dependency_type, + enabled + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + +} + + +// This internal method removes a dependency between two RT_Infos. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +remove_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the dependency */, + RtecScheduler::handle_t dependency /* RT_Info on which it depends */, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::remove_dependency_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // All dependencies are mapped by both the calling and called + // operation handles, so that a topological sort can be performed + // once over both one-way and two-way dependencies. The dependency + // specification is in absolute terms, however, so that the calling + // and called handles are reversed for one-way and two way + // dependencies. + + switch (dependency_type) + { + // In a two-way call, the calling operation depends on the + // called operation. + case RtecBase::TWO_WAY_CALL: + + // Remove the calling dependency map entry + unmap_dependency_i (handle, // calling handle + dependency, // called handle + calling_dependency_set_map_, // calling map + number_of_calls, + dependency_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Remove the called dependency map entry + unmap_dependency_i (dependency, // called handle + handle, // calling handle + called_dependency_set_map_, // called map + number_of_calls, + dependency_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + break; + + // In a one-way call, the called operation depends on the + // calling operation. + case RtecBase::ONE_WAY_CALL: + + // Remove the calling dependency map entry + unmap_dependency_i (dependency, // calling handle + handle, // called handle + calling_dependency_set_map_, // calling map + number_of_calls, + dependency_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + // Remove the called dependency map entry + unmap_dependency_i (handle, // called handle + dependency, // calling handle + called_dependency_set_map_, // called map + number_of_calls, + dependency_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; break; default: @@ -1150,7 +2171,93 @@ add_dependency_i (RtecScheduler::handle_t handle /* RT_Info that has the depende // There should not be any other kinds of dependencies. ACE_THROW (RtecScheduler::INTERNAL ()); } +} + + +// This method sets the enable state for a dependency between two RT_Infos. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +set_dependency_enable_state_i (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::set_dependency_enable_state_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // All dependencies are mapped by both the calling and called + // operation handles, so that a topological sort can be performed + // once over both one-way and two-way dependencies. The dependency + // specification is in absolute terms, however, so that the calling + // and called handles are reversed for one-way and two way + // dependencies. + + switch (dependency_type) + { + // In a two-way call, the calling operation depends on the + // called operation. + case RtecBase::TWO_WAY_CALL: + + // Update the calling dependency map entry + map_dependency_enable_state_i (handle, // calling handle + dependency, // called handle + calling_dependency_set_map_, // calling map + number_of_calls, + dependency_type, + enabled + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Update the called dependency map entry + map_dependency_enable_state_i (dependency, // called handle + handle, // calling handle + called_dependency_set_map_, // called map + number_of_calls, + dependency_type, + enabled + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + break; + + // In a one-way call, the called operation depends on the + // calling operation. + case RtecBase::ONE_WAY_CALL: + + // Update the calling dependency map entry + map_dependency_enable_state_i (dependency, // calling handle + handle, // called handle + calling_dependency_set_map_, // calling map + number_of_calls, + dependency_type, + enabled + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + // Update the called dependency map entry + map_dependency_enable_state_i (handle, // called handle + dependency, // calling handle + called_dependency_set_map_, // called map + number_of_calls, + dependency_type, + enabled + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + break; + + default: + + // There should not be any other kinds of dependencies. + ACE_THROW (RtecScheduler::INTERNAL ()); + } } // This method installs a dependency in a dependency set map. @@ -1159,21 +2266,24 @@ template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: map_dependency_i (RtecScheduler::handle_t key, RtecScheduler::handle_t handle, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & map, + ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map, CORBA::Long number_of_calls, - RtecScheduler::Dependency_Type_t dependency_type + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, RtecScheduler::UNKNOWN_TASK)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::map_dependency_i.\n")); +#endif /* SCHEDULER_LOGGING */ + RtecScheduler::Dependency_Set *dependency_set; // Look up the dependency set in the passed map - if (map.find (key, dependency_set) != 0) + if (dependency_map.find (key, dependency_set) != 0) { // Create a new one ACE_NEW_THROW_EX (dependency_set, @@ -1181,10 +2291,10 @@ map_dependency_i (RtecScheduler::handle_t key, CORBA::NO_MEMORY ()); ACE_CHECK; - if (map.bind (key, dependency_set) != 0) + if (dependency_map.bind (key, dependency_set) != 0) { delete dependency_set; - ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + ACE_THROW (RtecScheduler::INTERNAL ()); } } @@ -1193,8 +2303,139 @@ map_dependency_i (RtecScheduler::handle_t key, int prev_length = dependency_set->length (); dependency_set->length (prev_length + 1); (*dependency_set) [prev_length].rt_info = handle; + (*dependency_set) [prev_length].rt_info_depended_on = key; // may actually be the other way around (*dependency_set) [prev_length].number_of_calls = number_of_calls; (*dependency_set) [prev_length].dependency_type = dependency_type; + (*dependency_set) [prev_length].enabled = enabled; +} + + +// This method removes a dependency from a dependency set map. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +unmap_dependency_i (RtecScheduler::handle_t key, + RtecScheduler::handle_t handle, + ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::unmap_dependency_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + RtecScheduler::Dependency_Set *dependency_set = 0; + + // Try to unbind the matching dependency set from the passed map + // and if successful, destroy the + if (dependency_map.find (key, dependency_set) == 0) + { + if (dependency_set) + { + int prev_length = dependency_set->length (); + int found = 0; + for (int i = 0; i < prev_length; ++i) + { + if ((*dependency_set) [i].rt_info == handle + && (*dependency_set) [i].number_of_calls == number_of_calls + && (*dependency_set) [i].dependency_type == dependency_type) + { + // we found the dependency to delete: set our + // found flag to true and compact the array + found = 1; + for (int j = i+1; j < prev_length; ++j) + { + (*dependency_set) [j - 1].rt_info = (*dependency_set) [j].rt_info; + (*dependency_set) [j - 1].number_of_calls = (*dependency_set) [j].number_of_calls; + (*dependency_set) [j - 1].dependency_type = (*dependency_set) [j].dependency_type; + (*dependency_set) [j - 1].enabled = (*dependency_set) [j].enabled; + } + dependency_set->length (prev_length - 1); + break; + } + } + + if (!found) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + } + else + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + else + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } +} + +// Internal method that enables or disables a dependency between two RT_Infos. +// Assumes it is being called with all locks held, and does *not* +// set any schedule stability flags. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +map_dependency_enable_state_i (RtecScheduler::handle_t key, + RtecScheduler::handle_t handle, + ACE_TYPENAME + TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, + RtecScheduler::UNKNOWN_TASK)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::map_dependency_enable_state_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + RtecScheduler::Dependency_Set *dependency_set = 0; + + // Try to unbind the matching dependency set from the passed map + // and if successful, destroy the + if (dependency_map.find (key, dependency_set) == 0) + { + if (dependency_set) + { + int set_length = dependency_set->length (); + int found = 0; + for (int i = 0; i < set_length; ++i) + { + if ((*dependency_set) [i].rt_info == handle + && (*dependency_set) [i].number_of_calls == number_of_calls + && (*dependency_set) [i].dependency_type == dependency_type) + { + // we found the dependency to update + found = 1; + (*dependency_set) [i].enabled = enabled; + break; + } + } + + if (!found) + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } + } + else + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + else + { + ACE_THROW (RtecScheduler::UNKNOWN_TASK ()); + } } @@ -1208,6 +2449,11 @@ dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::dfs_traverse_i.\n")); +#endif /* SCHEDULER_LOGGING */ + int i; // index into array of scheduling entry pointers // Reset registered RT_Infos. @@ -1244,9 +2490,14 @@ detect_cycles_i (ACE_ENV_SINGLE_ARG_DECL) RtecScheduler::INTERNAL, RtecScheduler::CYCLIC_DEPENDENCIES)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::detect_cycles_i.\n")); +#endif /* SCHEDULER_LOGGING */ + // Sort the pointers to entries in order of descending forward - // finish times, which produces a topological ordering, with - // callers ahead of called nodes. + // finish times, which produces a reverse topological ordering, + // with callers ahead of called nodes. ACE_OS::qsort (ACE_reinterpret_cast (void *, entry_ptr_array_), this->rt_info_count_, sizeof (TAO_Reconfig_Scheduler_Entry *), @@ -1276,7 +2527,152 @@ detect_cycles_i (ACE_ENV_SINGLE_ARG_DECL) } } -// Propagates effective execution time and period, sets total frame size. + +// Propagates aggregate execution times, then performs admission over +// rate tuples. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +perform_admission_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::perform_admission_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // Traverse entries in topological (ascending forward DFS + // finish time) order, propagating aggregate execution + // time from called nodes to calling node at each step. + + TAO_RSE_Reverse_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> + prop_visitor (this->calling_dependency_set_map_, + this->rt_info_map_); + int i; + for (i = this->rt_info_count_ - 1; i >= 0; --i) + { + if (prop_visitor.visit (* (entry_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + + // Sort the pointers to original tuples in ascending admission + // order, according to the scheduling strategy's admission policy. + ACE_OS::qsort (ACE_reinterpret_cast (void *, tuple_ptr_array_), + this->rt_info_tuple_count_, + sizeof (TAO_RT_Info_Tuple *), + ACE_reinterpret_cast (COMP_FUNC, + RECONFIG_SCHED_STRATEGY::total_admission_comp)); + + // Traverse tuples in admission order, updating the associate tuple + // for each thread delineator. +#if defined (SCHEDULER_LOGGING) + ACE_Scheduler_Factory::log_scheduling_tuples(tuple_ptr_array_, + this->rt_info_tuple_count_, + "sorted_admit_tuples.txt"); +#endif + + TAO_Tuple_Admission_Visitor<RECONFIG_SCHED_STRATEGY> + admit_visitor (critical_utilization_threshold_, + noncritical_utilization_threshold_); + + for (i = 0; i < this->rt_info_tuple_count_; ++i) + { + if (admit_visitor.visit (* (tuple_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + + // Store the values accumulated by the visitor. + this->noncritical_utilization_ = + admit_visitor.noncritical_utilization (); + this->critical_utilization_ = + admit_visitor.critical_utilization (); +} + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +crit_dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::crit_dfs_traverse_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + int i; // index into array of scheduling entry pointers + + // Reset registered RT_Infos. + TAO_RSE_Reset_Visitor reset_visitor; + for (i = 0; i < this->rt_info_count_; ++i) + { + if (reset_visitor.visit (* (entry_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + + // Traverse registered RT_Infos, assigning DFS start, finish order. + TAO_RSE_DFS_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> + dfs_visitor (this->crit_dependency_set_map_, + this->rt_info_map_); + for (i = 0; i < this->rt_info_count_; ++i) + { + if (dfs_visitor.visit (* (entry_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } +} + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +propagate_criticalities_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)) +{ +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::propagate_criticalities_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // Sort the pointers to original tuples in ascending admission + // order, according to the scheduling strategy's admission policy. + ACE_OS::qsort (ACE_reinterpret_cast (void *, tuple_ptr_array_), + this->rt_info_tuple_count_, + sizeof (TAO_RT_Info_Tuple *), + ACE_reinterpret_cast (COMP_FUNC, + RECONFIG_SCHED_STRATEGY::comp_entry_finish_times )); + + // Traverse entries in topological (ascending forward DFS + // finish time) order, propagating aggregate execution + // time from called nodes to calling node at each step. + + TAO_RSE_Criticality_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> + crit_prop_visitor (this->crit_dependency_set_map_, + this->rt_info_map_); + int i; + for (i = 0; i<this->rt_info_count_; ++i) + { + if (crit_prop_visitor.visit (* (entry_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + for (i = this->rt_info_count_-1; i>=0; --i) + { + if (crit_prop_visitor.visit (* (entry_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } +} + +// Propagates periods, sets total frame size. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL) @@ -1285,10 +2681,15 @@ propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL) RtecScheduler::UNRESOLVED_LOCAL_DEPENDENCIES, RtecScheduler::THREAD_SPECIFICATION)) { - // Traverse entries in topological (DFS finish) order, - // propagating period and effective execution time from - // calling node to called node at each step. - TAO_RSE_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::propagate_characteristics_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // Traverse entries in reverse topological (descending forward DFS + // finish time) order, propagating period and effective execution + // time from calling node to called node at each step. + TAO_RSE_Forward_Propagation_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> prop_visitor (this->calling_dependency_set_map_, this->rt_info_map_); for (int i = 0; i < this->rt_info_count_; ++i) @@ -1322,6 +2723,26 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL) RtecScheduler::INTERNAL, RtecScheduler::DUPLICATE_NAME)) { +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::assign_priorities_i.\n")); + + ACE_DEBUG ((LM_DEBUG, "Scheduler::entry ptr array before sorting is\n")); + for (int i = 0; i < this->rt_info_count_; ++i) + { + RtecScheduler::RT_Info* rt_info_ptr = + this->entry_ptr_array_[i]->actual_rt_info (); + ACE_DEBUG ((LM_DEBUG, + " %s [%d] crit=%d,prio=%d,preemption_prio=%d,subprio=%d\n ", + rt_info_ptr->entry_point.in (), + rt_info_ptr->handle, + rt_info_ptr->criticality, + rt_info_ptr->priority, + rt_info_ptr->preemption_priority, + rt_info_ptr->preemption_subpriority)); + } +#endif /* SCHEDULER_LOGGING */ + // Sort the pointers to entries in descending order // of static priority and static subpriority, according // to our given scheduling strategy. @@ -1331,6 +2752,23 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL) ACE_reinterpret_cast (COMP_FUNC, RECONFIG_SCHED_STRATEGY::total_priority_comp)); +#ifdef SCHEDULER_LOGGING + ACE_DEBUG ((LM_DEBUG, "Scheduler::qsorted array is\n")); + for (int i = 0; i < this->rt_info_count_; ++i) + { + RtecScheduler::RT_Info* rt_info_ptr = + this->entry_ptr_array_[i]->actual_rt_info (); + ACE_DEBUG ((LM_DEBUG, + " %s [%d] crit=%d,prio=%d,preemption_prio=%d,subprio=%d\n ", + rt_info_ptr->entry_point.in (), + rt_info_ptr->handle, + rt_info_ptr->criticality, + rt_info_ptr->priority, + rt_info_ptr->preemption_priority, + rt_info_ptr->preemption_subpriority)); + } +#endif + // Empty out the previously stored configuration infos, if any. RtecScheduler::Preemption_Priority_t config_priority; RtecScheduler::Config_Info *config_info_temp; @@ -1346,10 +2784,11 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW (RtecScheduler::INTERNAL ()); } } + this->config_info_count_ = 0; // Traverse using a priority assignment visitor, which uses a // strategy to decide when a new priority or subpriority is reached. - TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY> + TAO_RSE_Priority_Visitor<RECONFIG_SCHED_STRATEGY, ACE_LOCK> prio_visitor (this->rt_info_count_, this->entry_ptr_array_); auto_ptr<RtecScheduler::Config_Info> new_config_info_ptr; for (int i = 0; i <= this->rt_info_count_; ++i) @@ -1392,7 +2831,7 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL) } if (new_config_info->preemption_priority > - last_scheduled_priority_) + this->last_scheduled_priority_) { this->last_scheduled_priority_ = new_config_info->preemption_priority; @@ -1422,53 +2861,36 @@ assign_priorities_i (ACE_ENV_SINGLE_ARG_DECL) } } -// Compute utilization, set last feasible priority. + +// Refreshes the array of tuple pointers, tuple pointer count. + template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: -compute_utilization_i (ACE_ENV_SINGLE_ARG_DECL) +refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL)) { - TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY> util_visitor; +#if defined (SCHEDULER_LOGGING) + ACE_DEBUG ((LM_TRACE, + " TAO_Reconfig_Scheduler::refresh_tuple_ptr_array_i.\n")); +#endif /* SCHEDULER_LOGGING */ + + // Zero out the tuple pointer array, set count to zero + ACE_OS::memset (this->tuple_ptr_array_, 0, + sizeof (TAO_RT_Info_Tuple *) + * this->tuple_ptr_array_size_); + this->rt_info_tuple_count_ = 0; + for (int i = 0; i < this->rt_info_count_; ++i) { - if (util_visitor.visit (* (entry_ptr_array_ [i])) < 0) + if (entry_ptr_array_ [i]->register_tuples (this->tuple_ptr_array_, + this->rt_info_tuple_count_) < 0) { ACE_THROW (RtecScheduler::INTERNAL ()); } } - - // Store the values accumulated by the visitor. - this->noncritical_utilization_ = - util_visitor.noncritical_utilization (); - this->critical_utilization_ = - util_visitor.critical_utilization (); -} - - -// Static helper method to give an RT_Info some reasonable default values. - -template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void -TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::init_rt_info (RtecScheduler::RT_Info &rt_info) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Set some reasonable default values. - rt_info.criticality = RtecScheduler::VERY_LOW_CRITICALITY; - rt_info.worst_case_execution_time = 0; - rt_info.typical_execution_time = 0; - rt_info.cached_execution_time = 0; - rt_info.period = 1; - rt_info.importance = RtecScheduler::VERY_LOW_IMPORTANCE; - rt_info.quantum = 0; - rt_info.threads = 0; - rt_info.info_type = RtecScheduler::OPERATION; - rt_info.priority = 0; - rt_info.preemption_subpriority = 0; - rt_info.preemption_priority = 0; - rt_info.volatile_token = 0; } - // Accesses scheduling strategy for the reconfig scheduler. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> RECONFIG_SCHED_STRATEGY & @@ -1481,11 +2903,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::sched_strategy () // Accesses map for O(1) lookup of Config_Infos by priority level. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -ACE_Hash_Map_Manager_Ex<RtecScheduler::Preemption_Priority_t, - RtecScheduler::Config_Info*, - ACE_Hash<RtecScheduler::Preemption_Priority_t>, - ACE_Equal_To<RtecScheduler::Preemption_Priority_t>, - ACE_LOCK> & +ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::CONFIG_INFO_MAP & TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::config_info_map () { return this->config_info_map_; @@ -1505,11 +2923,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::config_info_count () // Accesses map for O(1) lookup of RT_Infos by handle. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & +ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_MAP & TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_map () { return this->rt_info_map_; @@ -1524,14 +2938,19 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_count () return this->rt_info_count_; } +// Returns the number of registered RT_Info tuples. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> long +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_tuple_count () +{ + return this->rt_info_tuple_count_; +} + // Accesses tree for O(log n) lookup of RT_Infos by name. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -ACE_RB_Tree<const char *, - RtecScheduler::RT_Info*, - ACE_Less_Than<const char *>, - ACE_LOCK> & +ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::RT_INFO_TREE & TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_tree () { return this->rt_info_tree_; @@ -1542,11 +2961,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::rt_info_tree () // set by the caller operation's handle. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & +ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::calling_dependency_set_map () { return this->calling_dependency_set_map_; @@ -1557,11 +2972,7 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::calling_dependency_se // set by the called operation's handle. template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> -ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> & +ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP & TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::called_dependency_set_map () { return this->called_dependency_set_map_; @@ -1577,6 +2988,160 @@ TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::dependency_count () return this->dependency_count_; } +// Accessor for utilization by noncritical tasks. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +CORBA::Double +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +noncritical_utilization () +{ + return noncritical_utilization_; +} + +// Accessor for utilization by critical tasks. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +CORBA::Double +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +critical_utilization () +{ + return critical_utilization_; +} + +// Accessor for noncritical task utilization threshold. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +CORBA::Double +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +noncritical_utilization_threshold () +{ + return noncritical_utilization_threshold_; +} + +// Mutator for noncritical task utilization threshold. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +noncritical_utilization_threshold (const CORBA::Double &d) +{ + noncritical_utilization_threshold_ = d; +} + +// Accessor for critical task utilization threshold. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +CORBA::Double +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +critical_utilization_threshold () +{ + return critical_utilization_threshold_; +} + +// Mutator for critical task utilization threshold. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> +void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +critical_utilization_threshold (const CORBA::Double &d) +{ + critical_utilization_threshold_ = d; +} + + +// Helper function: makes sure there is room in the scheduling pointer +// arrays. This function expands the array eagerly, to minimize +// memory allocation overhead. + +template <class ARRAY_ELEMENT_TYPE> void +maintain_scheduling_array (ARRAY_ELEMENT_TYPE ** & current_ptr_array, + long & current_ptr_array_size, + RtecScheduler::handle_t handle + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (current_ptr_array_size <= handle) + { + long new_size = handle + 1; + ARRAY_ELEMENT_TYPE ** new_array; + + if (current_ptr_array_size > 0) + { + // Store previous array size. + for (new_size = 2 * current_ptr_array_size; + new_size <= handle; + new_size *= 2); + } + + // Allocate the new array of the proper size, zero it out. + + ACE_NEW_THROW_EX (new_array, + ARRAY_ELEMENT_TYPE * [new_size], + CORBA::NO_MEMORY ()); + + ACE_OS::memset (new_array, 0, + sizeof (ARRAY_ELEMENT_TYPE *) * + new_size); + + if (current_ptr_array_size > 0) + { + // Copy in the previous array. + ACE_OS::memcpy (new_array, current_ptr_array, + sizeof (ARRAY_ELEMENT_TYPE *) * + current_ptr_array_size); + + // Free the old array and swap to point to the new one. + delete [] current_ptr_array; + } + + current_ptr_array = new_array; + current_ptr_array_size = new_size; + } +} + +/* WSOA merge - commented out +// Compute utilization, set last feasible priority. +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void + +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>:: +compute_utilization_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)) +{ + TAO_RSE_Utilization_Visitor<RECONFIG_SCHED_STRATEGY> util_visitor; + for (int i = 0; i < this->rt_info_count_; ++i) + { + if (util_visitor.visit (* (entry_ptr_array_ [i])) < 0) + { + ACE_THROW (RtecScheduler::INTERNAL ()); + } + } + + // Store the values accumulated by the visitor. + this->noncritical_utilization_ = + util_visitor.noncritical_utilization (); + this->critical_utilization_ = + util_visitor.critical_utilization (); +} + + +// Static helper method to give an RT_Info some reasonable default values. + +template <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK> void +TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::init_rt_info (RtecScheduler::RT_Info &rt_info) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + // Set some reasonable default values. + rt_info.criticality = RtecScheduler::VERY_LOW_CRITICALITY; + rt_info.worst_case_execution_time = 0; + rt_info.typical_execution_time = 0; + rt_info.cached_execution_time = 0; + rt_info.period = 1; + rt_info.importance = RtecScheduler::VERY_LOW_IMPORTANCE; + rt_info.quantum = 0; + rt_info.threads = 0; + rt_info.info_type = RtecScheduler::OPERATION; + rt_info.priority = 0; + rt_info.preemption_subpriority = 0; + rt_info.preemption_priority = 0; + rt_info.volatile_token = 0; +} + +*/ #endif /* TAO_RECONFIG_SCHEDULER_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h index a9fd17ab431..d2fe751d304 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h @@ -46,14 +46,14 @@ class TAO_Reconfig_Scheduler : public: typedef ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::RT_Info*, + TAO_RT_Info_Ex *, ACE_Hash<RtecScheduler::handle_t>, ACE_Equal_To<RtecScheduler::handle_t>, ACE_LOCK> RT_INFO_MAP; // Type of map used for O(1) lookup of RT_Infos by their handles. typedef ACE_RB_Tree<const char *, - RtecScheduler::RT_Info*, + TAO_RT_Info_Ex*, ACE_Less_Than<const char *>, ACE_LOCK> RT_INFO_TREE; // Type of tree used for O(log n) lookup of RT_Infos by their names. @@ -73,7 +73,13 @@ public: // Type of map used for O(1) lookup of RT_Info // dependency sets by caller or called handle. - TAO_Reconfig_Scheduler (int enforce_schedule_stability = 0); + typedef typename DEPENDENCY_SET_MAP::ITERATOR DEPENDENCY_SET_MAP_ITERATOR; + // Type of iterator for traversal of RT_Info dependency sets by + // caller or called handle. + + TAO_Reconfig_Scheduler (int enforce_schedule_stability = 0, + const CORBA::Double & critical_utilization_threshold = 1.0, + const CORBA::Double & noncritical_utilization_threshold = 1.1); // Default constructor. TAO_Reconfig_Scheduler (int config_count, @@ -83,10 +89,15 @@ public: int dependency_count, ACE_Scheduler_Factory::POD_Dependency_Info dependency_info[], u_long stability_flags, - int enforce_schedule_stability = 0); + int enforce_schedule_stability = 0, + const CORBA::Double & critical_utilization_threshold = 1.0, + const CORBA::Double & noncritical_utilization_threshold = 1.1); // Constructor. Initialize the scheduler from POD_Config_Info, POD_RT_Info, // and POD_Dependency arrays, plus schedule stability flags. + ~TAO_Reconfig_Scheduler (); + // Destructor. + int init (int config_count, ACE_Scheduler_Factory::POD_Config_Info config_info[], int rt_info_count, @@ -104,6 +115,7 @@ public: void close (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, RtecScheduler::UNKNOWN_TASK, RtecScheduler::SYNCHRONIZATION_FAILURE)); // Closes the scheduler, releasing all current resources. @@ -151,6 +163,52 @@ public: RtecScheduler::SYNCHRONIZATION_FAILURE)); // Set characteristics of the RT_Info corresponding to the passed handle. + virtual void reset (RtecScheduler::handle_t handle, + RtecScheduler::Criticality_t criticality, + RtecScheduler::Time time, + RtecScheduler::Time typical_time, + RtecScheduler::Time cached_time, + RtecScheduler::Period_t period, + RtecScheduler::Importance_t importance, + RtecScheduler::Quantum_t quantum, + CORBA::Long threads, + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Reset characteristics of the RT_Info corresponding to the passed handle. + + virtual void set_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Set characteristics of the RT_Infos corresponding to the passed handles. + // Tuples are added in the case of existing and/or multiple definitions. + + virtual void reset_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Reset characteristics of the RT_Infos corresponding to the passed handles. + // Tuples are replaced in the case of existing and/or multiple definitions. + + virtual void replace_seq (const RtecScheduler::RT_Info_Set& infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UNKNOWN_TASK, + RtecScheduler::INTERNAL, + RtecScheduler::SYNCHRONIZATION_FAILURE)); + // Replace all RT_Infos, resetting characteristics of the RT_Infos + // corresponding to the passed handles. All other RT_Infos are + // reset to their uninitialized values, i.e., the same they have + // just after the create call. + virtual void priority (RtecScheduler::handle_t handle, RtecScheduler::OS_Priority& o_priority, RtecScheduler::Preemption_Subpriority_t& p_subpriority, @@ -185,9 +243,53 @@ public: RtecScheduler::UNKNOWN_TASK)); // This method registers a dependency between two RT_Infos. + virtual void remove_dependency (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method removes a dependency between two RT_Infos. + + virtual void set_dependency_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method sets the enable state of a dependency between two RT_Infos. + + virtual void set_dependency_enable_state_seq (const RtecScheduler::Dependency_Set & dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method sets the enable state of a sequence of dependencies. + + virtual void set_rt_info_enable_state (RtecScheduler::handle_t handle, + RtecScheduler::RT_Info_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method enables or disables an RT_Info. + + virtual void set_rt_info_enable_state_seq (const RtecScheduler::RT_Info_Enable_State_Pair_Set & pair_set + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // This method enables or disables a sequence of RT_Infos. + virtual void compute_scheduling (CORBA::Long minimum_priority, CORBA::Long maximum_priority, RtecScheduler::RT_Info_Set_out infos, + RtecScheduler::Dependency_Set_out dependencies, RtecScheduler::Config_Info_Set_out configs, RtecScheduler::Scheduling_Anomaly_Set_out anomalies ACE_ENV_ARG_DECL) @@ -203,6 +305,44 @@ public: // to be computed for all registered RT_Infos. If the schedule is // already stable, this is a no-op. + virtual void recompute_scheduling (CORBA::Long minimum_priority, + CORBA::Long maximum_priority, + RtecScheduler::Scheduling_Anomaly_Set_out anomalies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::UTILIZATION_BOUND_EXCEEDED, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS, + RtecScheduler::TASK_COUNT_MISMATCH, + RtecScheduler::INTERNAL, + RtecScheduler::DUPLICATE_NAME)); + // Recomputes the scheduling priorities, etc. + + virtual void get_rt_info_set (RtecScheduler::RT_Info_Set_out infos + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + virtual void get_dependency_set (RtecScheduler::Dependency_Set_out dependencies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of rt_infos, with their assigned priorities (as + // of the last schedule re-computation). + + virtual void get_config_info_set (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::INTERNAL)); + // Returns the set of config_infos, describing the appropriate + // number, types, and priority levels for the dispatching lanes. + + virtual void dispatch_configuration (RtecScheduler::Preemption_Priority_t p_priority, RtecScheduler::OS_Priority& o_priority, RtecScheduler::Dispatching_Type_t & d_type @@ -247,6 +387,9 @@ public: long rt_info_count (); // Returns the number of registered RT_Infos. + long rt_info_tuple_count (); + // Returns the number of registered RT_Info tuples. + RT_INFO_TREE & rt_info_tree (); // Accesses tree for O(log n) lookup of RT_Infos by name. @@ -262,11 +405,33 @@ public: // Returns the number of dependencies in the dependency lists of all RT_Infos. // This is used when traversing the dependency graph. + CORBA::Double noncritical_utilization (); + // Accessor for utilization by noncritical tasks. + + CORBA::Double critical_utilization (); + // Accessor for utilization by critical tasks. + + CORBA::Double noncritical_utilization_threshold (); + // Accessor for noncritical task utilization threshold. + + void noncritical_utilization_threshold (const CORBA::Double &); + // Mutator for noncritical task utilization threshold. + + CORBA::Double critical_utilization_threshold (); + // Accessor for critical task utilization threshold. + + void critical_utilization_threshold (const CORBA::Double &); + // Mutator for critical task utilization threshold. + protected: // @@ TO DO: use a memento to save and restore scheduler state without // breaking encapsulation, particularly of these flags. + // @@ TO DO: Recheck the applicability and fine-grain management of + // these flags. Do these still correctly reflect the phases + // of the computation? + enum Stability_Flags { // This should always be zero. @@ -293,18 +458,20 @@ protected: }; // Flags indicating stability conditions of schedule. - virtual RtecScheduler::RT_Info * create_i (const char * entry_point, - RtecScheduler::handle_t handle - ACE_ENV_ARG_DECL) + TAO_RT_Info_Ex * create_i (const char * entry_point, + RtecScheduler::handle_t handle, + int ignore_duplicates + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::DUPLICATE_NAME, RtecScheduler::INTERNAL)); - // Internal method to create an RT_Info. If it does not exist, - // a new RT_Info is created and inserted into the schedule, - // and the handle of the new RT_Info is returned. - // If the RT_Info already exists, an exception is thrown. + // Internal method to create an RT_Info. If it does not exist, a + // new RT_Info is created and inserted into the schedule, and the + // handle of the new RT_Info is returned. If the RT_Info already + // exists, then if the ignore_duplicates flag is set, the handle + // is simply returned; otherwise, an exception is thrown. - virtual void set_i (RtecScheduler::RT_Info *rt_info, + void set_i (TAO_RT_Info_Ex *rt_info, RtecScheduler::Criticality_t criticality, RtecScheduler::Time time, RtecScheduler::Time typical_time, @@ -313,7 +480,10 @@ protected: RtecScheduler::Importance_t importance, RtecScheduler::Quantum_t quantum, CORBA::Long threads, - RtecScheduler::Info_Type_t info_type); + RtecScheduler::Info_Type_t info_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)); // Internal method to set characteristics of the passed RT_Info. virtual RtecScheduler::handle_t lookup_i (const char * entry_point @@ -337,8 +507,9 @@ protected: virtual void add_dependency_i (RtecScheduler::handle_t handle, RtecScheduler::handle_t dependency, CORBA::Long number_of_calls, - RtecScheduler::Dependency_Type_t dependency_type - ACE_ENV_ARG_DECL) + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL, RtecScheduler::UNKNOWN_TASK)); @@ -346,21 +517,68 @@ protected: // Assumes it is being called with all locks held, and does *not* // set any schedule stability flags. + virtual void remove_dependency_i (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // Internal method that removes a dependency between two RT_Infos. + // Assumes it is being called with all locks held, and does *not* + // set any schedule stability flags. + + virtual void set_dependency_enable_state_i (RtecScheduler::handle_t handle, + RtecScheduler::handle_t dependency, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::UNKNOWN_TASK)); + // Internal method that enables or disables a dependency between two RT_Infos. + // Assumes it is being called with all locks held, and does *not* + // set any schedule stability flags. + + virtual void map_dependency_i (RtecScheduler::handle_t key, RtecScheduler::handle_t handle, - ACE_Hash_Map_Manager_Ex<RtecScheduler::handle_t, - RtecScheduler::Dependency_Set*, - ACE_Hash<RtecScheduler::handle_t>, - ACE_Equal_To<RtecScheduler::handle_t>, - ACE_LOCK> &map, + ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map, CORBA::Long number_of_calls, - RtecScheduler::Dependency_Type_t dependency_type - ACE_ENV_ARG_DECL) + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, RtecScheduler::UNKNOWN_TASK)); // This method installs a dependency in a dependency set map. + void unmap_dependency_i (RtecScheduler::handle_t key, + RtecScheduler::handle_t handle, + ACE_TYPENAME TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, + RtecScheduler::UNKNOWN_TASK)); + // This method removes a dependency from a dependency set map. + + void map_dependency_enable_state_i (RtecScheduler::handle_t key, + RtecScheduler::handle_t handle, + ACE_TYPENAME + TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::DEPENDENCY_SET_MAP &dependency_map, + CORBA::Long number_of_calls, + RtecScheduler::Dependency_Type_t dependency_type, + RtecScheduler::Dependency_Enabled_Type_t enabled + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL, + RtecScheduler::UNKNOWN_TASK)); + // This method updates the enable state of a dependency in a dependency set map. virtual void dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, @@ -375,7 +593,28 @@ protected: // Sorts an array of RT_info handles in topological order, then // checks for loops, marks unresolved remote dependencies. - virtual void propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL) + void perform_admission_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)); + // Compute aggregate execution times, then performs admission over + // rate tuples. + + + void crit_dfs_traverse_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)); + // Traverses criticality dependency graph, assigning a topological + // ordering. Resets DFS map entries, do DFS traversal, constructs + // DFS map. + + + void propagate_criticalities_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)); + // Propagates criticalities. + + + void propagate_characteristics_i (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL, RtecScheduler::UNRESOLVED_LOCAL_DEPENDENCIES, @@ -386,21 +625,26 @@ protected: ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL, RtecScheduler::DUPLICATE_NAME)); - // Sort operations by urgency (done by strategy), then - // assign priorities and subpriorities in one pass. - // Sets last scheduled priority. + // Sort operations by urgency (done by strategy), then assign + // priorities and subpriorities in one pass. (Re)computes utilization + // and sets last scheduled priority and last feasible priority. + + void refresh_tuple_ptr_array_i (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::INTERNAL)); + // Refreshes the array of tuple pointers, corrects the count. +/* WSOA merge - commented out virtual void compute_utilization_i (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::INTERNAL)); // Compute utilization, set last feasible priority. + static void init_rt_info (RtecScheduler::RT_Info &rt_info) ACE_THROW_SPEC ((CORBA::SystemException)); // Helper method to give an RT_Info some reasonable default values - - - +*/ // = Protected class members. RECONFIG_SCHED_STRATEGY sched_strategy_; @@ -419,6 +663,9 @@ protected: long rt_info_count_; // The number of registered RT_Infos. + long rt_info_tuple_count_; + // The number of registered RT_Info tuples. + RT_INFO_TREE rt_info_tree_; // Tree for O(log n) lookup of RT_Infos by name. @@ -430,6 +677,13 @@ protected: // Map for O(1) lookup of RT_Info dependency // set by the called operation's handle. + DEPENDENCY_SET_MAP crit_dependency_set_map_; + // Map for O(1) lookup of RT_Info dependency set. The above two maps + // store the calling and called dependencies. This map stores the + // true dependencies based on criticality propagation direction. For + // two-ways, this is the same as the direction of invocation, + // whereas for one-ways, it is in the opposite direction. + RtecScheduler::handle_t next_handle_; // Next RT_Info descriptor handle to allocate. The first handle is // always 1. @@ -444,6 +698,16 @@ protected: long entry_ptr_array_size_; // Size of the array of scheduling entry pointers. + TAO_RT_Info_Tuple ** tuple_ptr_array_; + // Array of pointers to scheduling entries. This + // array is maintained by the methods that create + // scheduling entries, and sorted in topological + // order and then priority order at various points + // during schedule computation. + + long tuple_ptr_array_size_; + // Size of the array of scheduling entry pointers. + u_long stability_flags_; // Flags indicating whether a stable schedule has been computed // since the last addition or modification of information, and which @@ -468,11 +732,28 @@ protected: CORBA::Double critical_utilization_; // Utilization by critical tasks. + CORBA::Double noncritical_utilization_threshold_; + // Utilization by noncritical tasks. + + CORBA::Double critical_utilization_threshold_; + // Utilization by critical tasks. + ACE_LOCK mutex_; // Mutual exclusion lock for the scheduler itself. This is needed to // synchronize updates and accesses to scheduling information. }; + +template <class ARRAY_ELEMENT_TYPE> void +maintain_scheduling_array (ARRAY_ELEMENT_TYPE ** & current_ptr_array, + long & current_ptr_array_size, + RtecScheduler::handle_t handle + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); +// Helper function: makes sure there is room in the scheduling pointer +// arrays. This function expands the array eagerly, to minimize time +// overhead for memory allocation (at a cost of some unused space). + #if defined (__ACE_INLINE__) #include "Reconfig_Scheduler_T.i" #endif /* __ACE_INLINE__ */ diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp index b3fcf71b250..f1391b4ae64 100644 --- a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp +++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp @@ -5,6 +5,8 @@ #include "ace/Null_Mutex.h" #include "orbsvcs/Runtime_Scheduler.h" +#include "orbsvcs/Sched/Reconfig_Scheduler.h" +#include "orbsvcs/Sched/Reconfig_Sched_Utils.h" #include "orbsvcs/Scheduler_Factory.h" #if ! defined (__ACE_INLINE__) @@ -20,12 +22,71 @@ RtecScheduler::Scheduler_ptr ACE_Scheduler_Factory::server_ = 0; ACE_Scheduler_Factory::Factory_Status ACE_Scheduler_Factory::status_ = ACE_Scheduler_Factory::UNINITIALIZED; + +RtecScheduler::Period_t ACE_Scheduler_Factory::period_default_ = 0; +RtecScheduler::Threads_t ACE_Scheduler_Factory::threads_default_ = 0; +RtecScheduler::Importance_t ACE_Scheduler_Factory::importance_default_ = RtecScheduler::MEDIUM_IMPORTANCE; +RtecScheduler::Criticality_t ACE_Scheduler_Factory::criticality_default_ = RtecScheduler::HIGH_CRITICALITY; +RtecScheduler::RT_Info_Enabled_Type_t ACE_Scheduler_Factory::rt_info_enable_state_default_ = RtecScheduler::RT_INFO_NON_VOLATILE; + +RtecScheduler::Period_t ACE_Scheduler_Factory::period_default() +{ + return period_default_; +} + +RtecScheduler::Threads_t ACE_Scheduler_Factory::threads_default() +{ + return threads_default_; +} + +RtecScheduler::Importance_t ACE_Scheduler_Factory::importance_default() +{ + return importance_default_; +} + +RtecScheduler::Criticality_t ACE_Scheduler_Factory::criticality_default() +{ + return criticality_default_; +} + +void ACE_Scheduler_Factory::period_default(RtecScheduler::Period_t period_default) +{ + period_default_ = period_default; +} + +void ACE_Scheduler_Factory::threads_default(RtecScheduler::Threads_t threads_default) +{ + threads_default_ = threads_default; +} + +void ACE_Scheduler_Factory::importance_default(RtecScheduler::Importance_t importance_default) +{ + importance_default_ = importance_default; +} + +void ACE_Scheduler_Factory::criticality_default(RtecScheduler::Criticality_t criticality_default) +{ + criticality_default_ = criticality_default; +} + +RtecScheduler::RT_Info_Enabled_Type_t ACE_Scheduler_Factory::rt_info_enable_state_default() +{ + return rt_info_enable_state_default_; +} + +void ACE_Scheduler_Factory::rt_info_enable_state_default(RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default) +{ + rt_info_enable_state_default_ = rt_info_enable_state_default; +} + // This symbols are extern because the automatic template -// instantiation mechanism in SunCC get confused otherwise. +// instantiation mechanism in SunCC gets confused otherwise. int TAO_SF_config_count = -1; ACE_Scheduler_Factory::POD_Config_Info* TAO_SF_config_info = 0; int TAO_SF_entry_count = -1; ACE_Scheduler_Factory::POD_RT_Info* TAO_SF_rt_info = 0; +int TAO_SF_dependency_count = -1; +ACE_Scheduler_Factory::POD_Dependency_Info* TAO_SF_dep_info = 0; struct ACE_Scheduler_Factory_Data { @@ -34,8 +95,13 @@ struct ACE_Scheduler_Factory_Data // ACE_TSS objects. We can't use ACE_Singleton directly, because // construction of ACE_Runtime_Scheduler takes arguments. +/* WSOA merge - commented out ACE_Runtime_Scheduler scheduler_; // The static runtime scheduler. +*/ + + TAO_Reconfig_Scheduler<TAO_MUF_FAIR_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX> scheduler_; + // The scheduler. ACE_TSS<ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> > preemption_priority_; @@ -47,7 +113,10 @@ struct ACE_Scheduler_Factory_Data : scheduler_ (TAO_SF_config_count, TAO_SF_config_info, TAO_SF_entry_count, - TAO_SF_rt_info), + TAO_SF_rt_info, + TAO_SF_dependency_count, + TAO_SF_dep_info, + 0), preemption_priority_ () { } @@ -211,6 +280,17 @@ static char end_infos_empty[] = "};\n\n" "static int infos_size = 0;\n\n"; +static char start_dependencies[] = +"\n\nstatic ACE_Scheduler_Factory::POD_Dependency_Info dependencies[] = {\n"; + +static char end_dependencies[] = +"};\n\n" +"static int dependencies_size = sizeof(dependencies)/sizeof(dependencies[0]);\n\n"; + +static char end_dependencies_empty[] = +"};\n\n" +"static int dependencies_size = 0;\n\n"; + static char start_configs[] = "\nstatic ACE_Scheduler_Factory::POD_Config_Info configs[] = {\n"; @@ -224,28 +304,48 @@ static char end_configs_empty[] = int ACE_Scheduler_Factory::dump_schedule (const RtecScheduler::RT_Info_Set& infos, + const RtecScheduler::Dependency_Set& dependencies, const RtecScheduler::Config_Info_Set& configs, const RtecScheduler::Scheduling_Anomaly_Set& anomalies, const char* file_name, const char* rt_info_format, - const char* config_info_format) + const char* dependency_format, + const char* config_info_format, + int dump_disabled_infos, + int dump_disabled_dependencies) { u_int i; char entry_point [BUFSIZ]; // Default format for printing RT_Info output. if (rt_info_format == 0) - rt_info_format = "{%20s, %10d, %10d, %10d, " - "%10d, %10d, " - "(RtecScheduler::Criticality_t) %d, " - "(RtecScheduler::Importance_t) %d, " - "%10d, %10d, %10d, %10d, %10d, " - "(RtecScheduler::Info_Type_t) %d }"; + rt_info_format = "{%20s, /* entry_point */\n" + "%10d, /* handle */\n" + "%10d, /* worst_case_execution_time */,\n" + "%10d, /* typical_execution_time */,\n" + "%10d, /* cached_execution_time */,\n" + "%10d, /* period */\n" + "(RtecScheduler::Criticality_t) %d, /* [ VL_C = 0, L_C = 1, M_C = 2, H_C = 3, VH_C = 4] */\n" + "(RtecScheduler::Importance_t) %d, /* [ VL_I = 0, L_I = 1, M_I = 2, H_I = 3, VH_I = 4] */\n" + "%10d, /* quantum */\n" + "%10d, /* threads */\n" + "%10d, /* priority */\n" + "%10d, /* preemption_subpriority */\n" + "%10d, /* preemption_priority */\n" + "(RtecScheduler::Info_Type_t) %d, /* [OPERATION = 0, CONJUNCTION = 1, DISJUNCTION = 2, REMOTE_DEPENDANT = 3] */\n" + "(RtecScheduler::RT_Info_Enabled_Type_t) %d } /* [RT_INFO_DISABLED = 0, RT_INFO_ENABLED = 1, RT_INFO_NON_VOLATILE = 2] */\n"; + + + // Default format for printing dependency output. + if (dependency_format == 0) + dependency_format = " { (RtecScheduler::Dependency_Type_t) %d, %10d, " + "%10d, %10d," + "(RtecScheduler::Dispatching_Type_t) %d }"; // Default format for printing Config_Info output. if (config_info_format == 0) config_info_format = " { %10d, %10d, " - "(RtecScheduler::Dispatching_Type_t) %d }"; + "(RtecScheduler::Dependency_Enabled_Type_t) %d }"; FILE* file = stdout; if (file_name != 0) @@ -289,6 +389,16 @@ int ACE_Scheduler_Factory::dump_schedule (const char *) anomaly.description); } + // Print out banner indicating which infos are dumped. + if (dump_disabled_infos) + { + ACE_OS::fprintf (file, "\n// Both enabled and disabled RT_Infos were dumped to this file.\n\n"); + } + else + { + ACE_OS::fprintf (file, "\n// Only enabled RT_Infos were dumped to this file.\n\n"); + } + // Print out operation QoS info. ACE_OS::fprintf (file, start_infos); @@ -296,6 +406,12 @@ int ACE_Scheduler_Factory::dump_schedule i < infos.length (); ++i) { + const RtecScheduler::RT_Info& info = infos[i]; + + if (dump_disabled_infos + || info.enabled == RtecScheduler::RT_INFO_ENABLED + || info.enabled == RtecScheduler::RT_INFO_NON_VOLATILE) + { if (i != 0) // Finish previous line. ACE_OS::fprintf(file, ",\n"); @@ -323,18 +439,68 @@ int ACE_Scheduler_Factory::dump_schedule info.threads, info.priority, info.preemption_subpriority, - info.preemption_priority, - info.info_type); + info.preemption_priority, + info.info_type, + info.enabled); + } } + // Finish last line. - ACE_OS::fprintf(file, - "\n"); + ACE_OS::fprintf(file, "\n"); if (infos.length () > 0) ACE_OS::fprintf (file, end_infos); else ACE_OS::fprintf (file, end_infos_empty); + // Print out banner indicating which dependencies are dumped. + if (dump_disabled_dependencies) + { + ACE_OS::fprintf (file, "\n// Both enabled and disabled dependencies were dumped to this file.\n\n"); + } + else + { + ACE_OS::fprintf (file, "\n// Only enabled dependencies were dumped to this file.\n\n"); + } + + // Print out operation dependency info. + ACE_OS::fprintf (file, start_dependencies); + + for (i = 0; + i < dependencies.length (); + ++i) + { + const RtecScheduler::Dependency_Info& dep = dependencies[i]; + + if (dump_disabled_infos + || dep.enabled == RtecBase::DEPENDENCY_ENABLED + || dep.enabled == RtecBase::DEPENDENCY_NON_VOLATILE) + { + // Finish previous line. + if (i != 0) + { + ACE_OS::fprintf (file, ",\n"); + } + + ACE_OS::fprintf (file, + dependency_format, + dep.dependency_type, + dep.number_of_calls, + dep.rt_info, + dep.rt_info_depended_on, + dep.enabled); + } + } + + // Finish last line. + ACE_OS::fprintf (file, "\n"); + + if (dependencies.length () > 0) + ACE_OS::fprintf (file, end_dependencies); + else + ACE_OS::fprintf (file, end_dependencies_empty); + + // Print out queue configuration info. ACE_OS::fprintf (file, start_configs); @@ -367,6 +533,205 @@ int ACE_Scheduler_Factory::dump_schedule return 0; } +void ACE_Scheduler_Factory::log_scheduling_entry(TAO_Reconfig_Scheduler_Entry * entry, FILE* file) +{ + + if( entry == 0 ) + { + ACE_OS::fprintf (file, "Entry is NULL"); + return; + } + + // Print out the actual rt_info data + const char* rt_info_format = "{%20s, /* entry_point */\n" + "%10d, /* handle */\n" + "%10d, /* period */\n" + "%10d, /* criticality */\n" + "%10d, /* threads */\n" + "%10d, /* priority */\n" + "%10d, /* preemption_subpriority */\n" + "%10d, /* preemption_priority */\n" + "%10d /* enabled */\n"; + + TAO_RT_Info_Ex* actual_info = entry->actual_rt_info(); + + ACE_OS::fprintf (file, + rt_info_format, + actual_info->entry_point.in(), + actual_info->handle, + actual_info->period, + actual_info->criticality, + actual_info->threads, + actual_info->priority, + actual_info->preemption_subpriority, + actual_info->preemption_priority, + actual_info->enabled); + + + // Print out the current admitted tuple + const char* admitted_tuple_format = " {" + "%13d, /* handle */\n" + "%13d, /* rate_index */\n" + "%13d, /* period */\n" + "%13d, /* criticality */\n" + "%13d, /* priority */\n" + "%13d, /* preemption_subpriority */\n" + "%13d, /* preemption_priority */\n" + "%13d } /* enabled */\n"; + + TAO_RT_Info_Tuple* current_admitted_tuple = entry->current_admitted_tuple(); + + ACE_OS::fprintf(file, "\n Current admitted Tuple:\n"); + if( current_admitted_tuple == 0 ) + { + ACE_OS::fprintf (file, " =>NONE_ADMITTED\n"); + } + else + { + ACE_OS::fprintf (file, + admitted_tuple_format, + current_admitted_tuple->handle, + current_admitted_tuple->rate_index, + current_admitted_tuple->period, + current_admitted_tuple->criticality, + current_admitted_tuple->priority, + current_admitted_tuple->preemption_subpriority, + current_admitted_tuple->preemption_priority, + current_admitted_tuple->enabled); + } + + // Print out the orig_tuple_subset_ + ACE_OS::fprintf(file, "\n Original Tuple Subset\n {\n"); + log_tuple_subset(entry->orig_tuple_subset(), file); + ACE_OS::fprintf(file, "\n }"); + + // Print out the prop_tuple_subset_ + ACE_OS::fprintf(file, "\n Propagated Tuple Subset\n {\n"); + log_tuple_subset(entry->prop_tuple_subset(), file); + ACE_OS::fprintf(file, "\n }\n}"); + + +} + +void ACE_Scheduler_Factory::log_tuple_subset(TUPLE_SET & tuple_subset, + FILE* file) +{ + TAO_RT_Info_Tuple **tuple_ptr_ptr; + const char* subset_tuple_format = " {\n" + "%13d, /* handle */\n" + "%13d, /* rate_index */\n" + "%13d, /* period */\n" + "%13d, /* criticality */\n" + "%13d, /* threads */\n" + "%13d, /* priority */\n" + "%13d, /* preemption_subpriority */\n" + "%13d, /* preemption_priority */\n" + "%13d } /* enabled */\n"; + + TUPLE_SET_ITERATOR + tuple_iter (tuple_subset); + + + while (tuple_iter.done () == 0) + { + // Get a pointer to the tuple COPY under the iterator. + if (tuple_iter.next (tuple_ptr_ptr) == 0 + || tuple_ptr_ptr == 0 || ((*tuple_ptr_ptr) == 0) ) + { + ACE_OS::fprintf (file, "{ NULL TUPLE POINTER }\n"); + } + else + { + + ACE_OS::fprintf (file, + subset_tuple_format, + (*tuple_ptr_ptr)->handle, + (*tuple_ptr_ptr)->rate_index, + (*tuple_ptr_ptr)->period, + (*tuple_ptr_ptr)->criticality, + (*tuple_ptr_ptr)->threads, + (*tuple_ptr_ptr)->priority, + (*tuple_ptr_ptr)->preemption_subpriority, + (*tuple_ptr_ptr)->preemption_priority, + (*tuple_ptr_ptr)->enabled); + } + + tuple_iter.advance (); + } +} + +int +ACE_Scheduler_Factory::log_scheduling_entries(TAO_Reconfig_Scheduler_Entry ** entry_ptr_array, + long entry_ptr_array_size, + const char* file_name) +{ + // Open the file + FILE* file = stdout; + if (file_name != 0) + { + file = ACE_OS::fopen (file_name, "w"); + if (file == 0) + return -1; + } + + + // Iterate through the array. The index is the (handle - 1) of the rt_info in the array + for(int index = 0; index < entry_ptr_array_size; ++index) + { + ACE_OS::fprintf(file, "\n\nScheduler Entry Array contents\n"); + TAO_Reconfig_Scheduler_Entry * entry = entry_ptr_array[index]; + + log_scheduling_entry(entry, file); + + + } + + + ACE_OS::fclose (file); + return 0; + +} + +void +ACE_Scheduler_Factory::log_scheduling_tuples(TAO_RT_Info_Tuple ** tuple_ptr_array, + long tuple_ptr_array_size, + const char* file_name) +{ + // Open the file + FILE* file = stdout; + if (file_name != 0) + { + file = ACE_OS::fopen (file_name, "w"); + if (file == 0) + return; + } + + const char* subset_tuple_format = " {\n" + "%13d, /* handle */\n" + "%13d, /* rate_index */\n" + "%13d, /* period */\n" + "%13d, /* criticality */\n" + "%13d, /* priority */\n" + "%13d, /* preemption_subpriority */\n" + "%13d, /* preemption_priority */\n" + "%13d } /* enabled */\n"; + + for (int ndx = 0; ndx < tuple_ptr_array_size; ndx++) + { + fprintf(file, + subset_tuple_format, + tuple_ptr_array[ndx]->handle, + tuple_ptr_array[ndx]->rate_index, + tuple_ptr_array[ndx]->period, + tuple_ptr_array[ndx]->criticality, + tuple_ptr_array[ndx]->priority, + tuple_ptr_array[ndx]->preemption_subpriority, + tuple_ptr_array[ndx]->preemption_priority, + tuple_ptr_array[ndx]->enabled); + } + + ACE_OS::fclose (file); +} #if defined (HPUX) && !defined (__GNUG__) // aCC can't handle RtecScheduler::Preemption_Priority_t used as an operator // name. @@ -425,10 +790,12 @@ ACE_Scheduler_Factory::set_preemption_priority template class ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex>; template class ACE_TSS<ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> >; template class ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t>; +template class ACE_Ordered_MultiSet<TAO_RT_Info_Tuple *>; +template class ACE_Ordered_MultiSet_Iterator<TAO_RT_Info_Tuple *>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex> #pragma instantiate ACE_TSS<ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> > #pragma instantiate ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority_t> -#elif defined (__GNUC__) && (defined (_AIX) || defined (__hpux) || defined (VXWORKS)) -template ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex> * ACE_Singleton<ACE_Scheduler_Factory_Data, ACE_Null_Mutex>::singleton_; +#pragma instantiate ACE_Ordered_MultiSet<TAO_RT_Info_Tuple *> +#pragma instantiate ACE_Ordered_MultiSet_Iterator<TAO_RT_Info_Tuple *> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h index 4140e3a3892..08b2fcb20c8 100644 --- a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h +++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h @@ -18,15 +18,21 @@ #define ACE_SCHEDULER_FACTORY_H #include /**/ "ace/pre.h" -#include "orbsvcs/CosNamingC.h" +#include "ace/Containers_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "orbsvcs/CosNamingC.h" #include "orbsvcs/RtecSchedulerC.h" #include "orbsvcs/Sched/sched_export.h" +class TAO_Reconfig_Scheduler_Entry; +struct TAO_RT_Info_Tuple; +typedef ACE_Ordered_MultiSet<TAO_RT_Info_Tuple *> TUPLE_SET; +typedef ACE_Ordered_MultiSet_Iterator<TAO_RT_Info_Tuple *> TUPLE_SET_ITERATOR; + class TAO_RTSched_Export ACE_Scheduler_Factory { // = TITLE @@ -74,11 +80,13 @@ public: CORBA::Long criticality; CORBA::Long importance; RtecScheduler::Quantum_t quantum; - CORBA::Long threads; + RtecScheduler::Threads_t threads; RtecScheduler::OS_Priority priority; RtecScheduler::Preemption_Subpriority_t static_subpriority; RtecScheduler::Preemption_Priority_t preemption_priority; CORBA::Long info_type; + RtecScheduler::RT_Info_Enabled_Type_t enabled; + }; @@ -92,10 +100,11 @@ public: // dependencies between RT_Infos. This is useful for implementing // arrays of those. - RtecScheduler::handle_t info_that_depends; - RtecScheduler::handle_t info_depended_on; RtecScheduler::Dependency_Type_t dependency_type; CORBA::Long number_of_calls; + RtecScheduler::handle_t info_that_depends; + RtecScheduler::handle_t info_depended_on; + RtecScheduler::Dependency_Enabled_Type_t enabled; }; struct POD_Config_Info @@ -154,17 +163,39 @@ public: // from main, after resolve_initial_references. static int dump_schedule (const RtecScheduler::RT_Info_Set& infos, + const RtecScheduler::Dependency_Set& dependencies, const RtecScheduler::Config_Info_Set& configs, const RtecScheduler::Scheduling_Anomaly_Set& anomalies, const char* file_name = 0, const char* rt_info_format = 0, - const char* config_info_format = 0); + const char* dependency_format = 0, + const char* config_info_format = 0, + int dump_disabled_infos = 0, + int dump_disabled_dependencies = 0); // This helper function will dump the schedule returned by a // RtecScheduler::Scheduler into a file, the file can be compiled to // create an efficient local implementation of the Scheduler. // TODO: How to do cleanup()? Use the ACE_Object_Manager stuff? + static void log_scheduling_entry(TAO_Reconfig_Scheduler_Entry * entry, + FILE* file); + // This helper function prints out a single scheduling entry contents + + static int log_scheduling_entries(TAO_Reconfig_Scheduler_Entry ** entry_ptr_array, + long entry_ptr_array_size, + const char* file_name); + // This helper function prints out the intermediate scheduling entries + + static void log_scheduling_tuples(TAO_RT_Info_Tuple ** tuple_ptr_array, + long tuple_ptr_array_size, + const char* file_name); + // This helper function prints out the arry used to create scheduling entries + // sorted in topological order then priority order + + static void log_tuple_subset(TUPLE_SET & tuple_subset, + FILE* file); + static Factory_Status status (void); // This helper function allows the application to determine whether // the factory is uninitialized, or in a config or runtime mode of @@ -181,7 +212,34 @@ public: // that the preemption priority is set before any access of the // preemption priority. + // Accessor for obtaining the default period (Boeing Extension) + static RtecScheduler::Period_t period_default(); + // Method for setting the default period (Boeing Extension) + static void period_default(RtecScheduler::Period_t period_default); + + // Accessor for obtaining the default threads (Boeing Extension) + static RtecScheduler::Threads_t threads_default(); + // Method for setting the default threads (Boeing Extension) + static void threads_default(RtecScheduler::Threads_t threads_default); + + // Accessor for obtaining the default importance (VERY_LOW_IMPORTANCE to VERY_HIGH_IMPORTANCE). (Boeing Extension) + static RtecScheduler::Importance_t importance_default(); + // Method for setting the default importance (VERY_LOW_IMPORTANCE to VERY_HIGH_IMPORTANCE). (Boeing Extension) + static void importance_default(RtecScheduler::Importance_t importance_default); + + // Accessor for obtaining the default criticality (VERY_LOW_CRITICALITY to VERY_HIGH_CRITICALITY). (Boeing Extension) + static RtecScheduler::Criticality_t criticality_default(); + // Method for setting the default criticality (VERY_LOW_CRITICALITY to VERY_HIGH_CRITICALITY). (Boeing Extension) + static void criticality_default(RtecScheduler::Criticality_t criticality_default); + + // Accessor for obtaining the default rt_info enabled state. (RT_INFO_DISABLED, RT_INFO_ENABLED, or RT_INFO_NON_VOLATILE) + static RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default(); + + // Method for setting the default rt_info enabled state. (RT_INFO_DISABLED, RT_INFO_ENABLED, or RT_INFO_NON_VOLATILE) + static void rt_info_enable_state_default(RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default); + protected: + static int no_config_run (void); // By default this factory assumes we are runnning a config // run. Calling this method disables that. Since the methods @@ -192,7 +250,21 @@ protected: private: static RtecScheduler::Scheduler_ptr server_; + static Factory_Status status_; + // Default period configuration. (Boeing Extension) + static RtecScheduler::Period_t period_default_; + // Default threads configuration. (Boeing Extension) + static RtecScheduler::Threads_t threads_default_; + + // Default importance configuration. (Boeing Extension) + static RtecScheduler::Importance_t importance_default_; + // Default criticality. (Boeing Extension) + static RtecScheduler::Criticality_t criticality_default_; + + // Default rt_info enabled state. (Boeing Extension) + static RtecScheduler::RT_Info_Enabled_Type_t rt_info_enable_state_default_; + }; #if defined (__ACE_INLINE__) diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp index ec6491c4da2..c43b71cb4ca 100644 --- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp +++ b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp @@ -581,6 +581,7 @@ Test_ECG::run (int argc, char* argv[]) if (this->schedule_file_ != 0) { RtecScheduler::RT_Info_Set_var infos; + RtecScheduler::Dependency_Set_var deps; RtecScheduler::Config_Info_Set_var configs; RtecScheduler::Scheduling_Anomaly_Set_var anomalies; @@ -596,6 +597,7 @@ Test_ECG::run (int argc, char* argv[]) // not define instances of _out types. RtecScheduler::RT_Info_Set_out infos_out (infos); + RtecScheduler::Dependency_Set_out deps_out (deps); RtecScheduler::Config_Info_Set_out configs_out (configs); RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies); ACE_Scheduler_Factory::server ()->compute_scheduling @@ -603,7 +605,8 @@ Test_ECG::run (int argc, char* argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos_out, configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); + infos_out, deps_out, + configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; #else /* ! __SUNPRO_CC */ ACE_Scheduler_Factory::server ()->compute_scheduling @@ -611,12 +614,14 @@ Test_ECG::run (int argc, char* argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos.out (), configs.out (), anomalies.out () + infos.out (), deps.out (), + configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; #endif /* ! __SUNPRO_CC */ ACE_Scheduler_Factory::dump_schedule (infos.in (), + deps.in (), configs.in (), anomalies.in (), this->schedule_file_); diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h index fc6dd8f71b3..a6de5dd6f1d 100644 --- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h +++ b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h @@ -6,149 +6,149 @@ static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_1[] = { { "Reactor_Task-25000.us", 1, 0, 0, 0, 250000, - 4, 0, 0, 1, 4, 0, 0, 0 }, + 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-50000.us", 2, 0, 0, 0, 500000, - 4, 0, 0, 1, 3, 0, 0, 0 }, + 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000, - 4, 0, 0, 1, 2, 0, 0, 0 }, + 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000, - 4, 0, 0, 1, 1, 0, 0, 0 }, + 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000, - 4, 0, 0, 1, 0, 0, 0, 0 }, + 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-25000.us", 6, 0, 0, 0, 0, - 4, 0, 0, 1, 4, 0, 0, 0 }, + 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-50000.us", 7, 0, 0, 0, 0, - 4, 0, 0, 1, 3, 0, 0, 0 }, + 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-100000.us", 8, 0, 0, 0, 0, - 4, 0, 0, 1, 2, 0, 0, 0 }, + 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-200000.us", 9, 0, 0, 0, 0, - 4, 0, 0, 1, 1, 0, 0, 0 }, + 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-1000000.us", 10, 0, 0, 0, 0, - 4, 0, 0, 1, 0, 0, 0, 0 }, + 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_00@ECM1", 11, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_01@ECM1", 12, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_02@ECM1", 13, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_03@ECM1", 14, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_04@ECM1", 15, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_05@ECM1", 16, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_06@ECM1", 17, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_07@ECM1", 18, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_08@ECM1", 19, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_09@ECM1", 20, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_00@ECM1", 21, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_01@ECM1", 22, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_02@ECM1", 23, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_03@ECM1", 24, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_04@ECM1", 25, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ecg_ECM2@ECM1", 26, 5000, 5000, 5000, 250000, - 4, 0, 5000, 0, 4, 0, 0, 0 }, + 4, 0, 5000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ecg_ECM1@ECM1", 27, 5000, 5000, 5000, 250000, - 4, 0, 5000, 1, 4, 0, 0, 0 }, + 4, 0, 5000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_00@ECM1", 28, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_01@ECM1", 29, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_02@ECM1", 30, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_03@ECM1", 31, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_04@ECM1", 32, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_05@ECM1", 33, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_06@ECM1", 34, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_07@ECM1", 35, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_08@ECM1", 36, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_09@ECM1", 37, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_10@ECM1", 38, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_11@ECM1", 39, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_12@ECM1", 40, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_13@ECM1", 41, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_14@ECM1", 42, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_15@ECM1", 43, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_16@ECM1", 44, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_17@ECM1", 45, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_18@ECM1", 46, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_19@ECM1", 47, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_20@ECM1", 48, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_21@ECM1", 49, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_22@ECM1", 50, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_23@ECM1", 51, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_24@ECM1", 52, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_00@ECM1", 53, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_01@ECM1", 54, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_02@ECM1", 55, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_03@ECM1", 56, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_04@ECM1", 57, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_00@ECM1", 58, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_01@ECM1", 59, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_02@ECM1", 60, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_03@ECM1", 61, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_04@ECM1", 62, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_05@ECM1", 63, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_06@ECM1", 64, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_07@ECM1", 65, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_08@ECM1", 66, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_09@ECM1", 67, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_00@ECM1", 68, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_01@ECM1", 69, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_02@ECM1", 70, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_03@ECM1", 71, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_04@ECM1", 72, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 } + 4, 0, 20000, 1, 0, 0, 0, 0, (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED} }; static int runtime_infos_1_size = sizeof(runtime_infos_1)/sizeof(runtime_infos_1[0]); diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h index 7b636968f54..44b87de3f80 100644 --- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h +++ b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h @@ -6,149 +6,149 @@ static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_2[] = { { "Reactor_Task-25000.us", 1, 0, 0, 0, 250000, - 4, 0, 0, 1, 4, 0, 0, 0 }, + 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-50000.us", 2, 0, 0, 0, 500000, - 4, 0, 0, 1, 3, 0, 0, 0 }, + 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000, - 4, 0, 0, 1, 2, 0, 0, 0 }, + 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000, - 4, 0, 0, 1, 1, 0, 0, 0 }, + 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000, - 4, 0, 0, 1, 0, 0, 0, 0 }, + 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-25000.us", 6, 0, 0, 0, 0, - 4, 0, 0, 1, 4, 0, 0, 0 }, + 4, 0, 0, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-50000.us", 7, 0, 0, 0, 0, - 4, 0, 0, 1, 3, 0, 0, 0 }, + 4, 0, 0, 1, 3, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-100000.us", 8, 0, 0, 0, 0, - 4, 0, 0, 1, 2, 0, 0, 0 }, + 4, 0, 0, 1, 2, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-200000.us", 9, 0, 0, 0, 0, - 4, 0, 0, 1, 1, 0, 0, 0 }, + 4, 0, 0, 1, 1, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ACE_ES_Dispatch_Queue-1000000.us", 10, 0, 0, 0, 0, - 4, 0, 0, 1, 0, 0, 0, 0 }, + 4, 0, 0, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_00@ECM2", 11, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_01@ECM2", 12, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_02@ECM2", 13, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_03@ECM2", 14, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_04@ECM2", 15, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_05@ECM2", 16, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_06@ECM2", 17, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_07@ECM2", 18, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_08@ECM2", 19, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_supplier_09@ECM2", 20, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_00@ECM2", 21, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_01@ECM2", 22, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_02@ECM2", 23, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_03@ECM2", 24, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_supplier_04@ECM2", 25, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ecg_ECM2@ECM2", 26, 5000, 5000, 5000, 250000, - 4, 0, 5000, 1, 4, 0, 0, 0 }, + 4, 0, 5000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "ecg_ECM1@ECM2", 27, 5000, 5000, 5000, 250000, - 4, 0, 5000, 0, 4, 0, 0, 0 }, + 4, 0, 5000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_00@ECM2", 28, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_01@ECM2", 29, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_02@ECM2", 30, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_03@ECM2", 31, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_04@ECM2", 32, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_05@ECM2", 33, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_06@ECM2", 34, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_07@ECM2", 35, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_08@ECM2", 36, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_09@ECM2", 37, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_10@ECM2", 38, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_11@ECM2", 39, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_12@ECM2", 40, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_13@ECM2", 41, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_14@ECM2", 42, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_15@ECM2", 43, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_16@ECM2", 44, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_17@ECM2", 45, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_18@ECM2", 46, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_19@ECM2", 47, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_20@ECM2", 48, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_21@ECM2", 49, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_22@ECM2", 50, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_23@ECM2", 51, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "hp_consumer_24@ECM2", 52, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 4, 0, 0, 0 }, + 4, 0, 20000, 0, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_00@ECM2", 53, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_01@ECM2", 54, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_02@ECM2", 55, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_03@ECM2", 56, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "lp_consumer_04@ECM2", 57, 20000, 20000, 20000, 0, - 4, 0, 20000, 0, 0, 0, 0, 0 }, + 4, 0, 20000, 0, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_00@ECM2", 58, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_01@ECM2", 59, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_02@ECM2", 60, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_03@ECM2", 61, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_04@ECM2", 62, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_05@ECM2", 63, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_06@ECM2", 64, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_07@ECM2", 65, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_08@ECM2", 66, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_hp_supplier_09@ECM2", 67, 20000, 20000, 20000, 250000, - 4, 0, 20000, 1, 4, 0, 0, 0 }, + 4, 0, 20000, 1, 4, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_00@ECM2", 68, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_01@ECM2", 69, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_02@ECM2", 70, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_03@ECM2", 71, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 }, + 4, 0, 20000, 1, 0, 0, 0, 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED}, { "consumer_lp_supplier_04@ECM2", 72, 20000, 20000, 20000, 10000000, - 4, 0, 20000, 1, 0, 0, 0, 0 } + 4, 0, 20000, 1, 0, 0, 0, 0, (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED} }; static int runtime_infos_2_size = sizeof(runtime_infos_2)/sizeof(runtime_infos_2[0]); diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h index d4ae4f1d0cd..86089e80ff4 100644 --- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h +++ b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h @@ -5,1021 +5,1021 @@ #include "orbsvcs/Scheduler_Factory.h" static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_3[] = { -{ "Reactor_Task-25000.us", 1, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1022, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "Reactor_Task-50000.us", 2, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1020, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1018, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1016, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "hp_supplier_00@ECM3", 6, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 10, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_supplier_00@ECM3", 7, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 9, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "hp_consumer_00@ECM3", 8, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1012, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_00@ECM3", 9, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1011, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_01@ECM3", 10, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1010, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_02@ECM3", 11, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1009, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_03@ECM3", 12, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1008, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_04@ECM3", 13, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1007, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_05@ECM3", 14, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1006, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_06@ECM3", 15, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1005, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_07@ECM3", 16, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1004, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_08@ECM3", 17, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1003, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_09@ECM3", 18, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1002, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_10@ECM3", 19, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1001, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_11@ECM3", 20, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1000, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_12@ECM3", 21, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 999, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_13@ECM3", 22, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 998, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_14@ECM3", 23, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 997, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_15@ECM3", 24, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 996, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_16@ECM3", 25, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 995, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_17@ECM3", 26, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 994, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_18@ECM3", 27, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 993, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_19@ECM3", 28, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 992, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_20@ECM3", 29, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 991, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_21@ECM3", 30, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 990, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_22@ECM3", 31, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 989, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_23@ECM3", 32, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 988, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_24@ECM3", 33, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 987, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_25@ECM3", 34, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 986, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_26@ECM3", 35, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 985, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_27@ECM3", 36, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 984, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_28@ECM3", 37, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 983, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_29@ECM3", 38, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 982, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_30@ECM3", 39, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 981, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_31@ECM3", 40, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 980, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_32@ECM3", 41, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 979, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_33@ECM3", 42, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 978, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_34@ECM3", 43, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 977, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_35@ECM3", 44, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 976, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_36@ECM3", 45, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 975, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_37@ECM3", 46, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 974, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_38@ECM3", 47, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 973, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_39@ECM3", 48, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 972, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_40@ECM3", 49, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 971, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_41@ECM3", 50, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 970, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_42@ECM3", 51, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 969, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_43@ECM3", 52, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 968, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_44@ECM3", 53, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 967, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_45@ECM3", 54, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 966, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_46@ECM3", 55, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 965, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_47@ECM3", 56, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 964, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_48@ECM3", 57, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 963, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_49@ECM3", 58, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 962, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_50@ECM3", 59, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 961, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_51@ECM3", 60, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 960, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_52@ECM3", 61, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 959, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_53@ECM3", 62, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 958, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_54@ECM3", 63, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 957, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_55@ECM3", 64, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 956, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_56@ECM3", 65, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 955, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_57@ECM3", 66, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 954, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_58@ECM3", 67, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 953, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_59@ECM3", 68, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 952, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_60@ECM3", 69, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 951, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_61@ECM3", 70, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 950, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_62@ECM3", 71, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 949, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_63@ECM3", 72, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 948, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_64@ECM3", 73, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 947, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_65@ECM3", 74, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 946, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_66@ECM3", 75, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 945, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_67@ECM3", 76, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 944, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_68@ECM3", 77, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 943, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_69@ECM3", 78, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 942, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_70@ECM3", 79, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 941, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_71@ECM3", 80, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 940, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_72@ECM3", 81, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 939, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_73@ECM3", 82, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 938, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_74@ECM3", 83, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 937, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_75@ECM3", 84, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 936, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_76@ECM3", 85, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 935, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_77@ECM3", 86, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 934, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_78@ECM3", 87, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 933, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_79@ECM3", 88, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 932, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_80@ECM3", 89, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 931, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_81@ECM3", 90, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 930, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_82@ECM3", 91, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 929, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_83@ECM3", 92, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 928, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_84@ECM3", 93, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 927, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_85@ECM3", 94, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 926, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_86@ECM3", 95, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 925, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_87@ECM3", 96, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 924, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_88@ECM3", 97, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 923, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_89@ECM3", 98, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 922, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_90@ECM3", 99, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 921, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_91@ECM3", 100, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 920, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_92@ECM3", 101, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 919, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_93@ECM3", 102, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 918, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_94@ECM3", 103, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 917, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_95@ECM3", 104, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 916, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_96@ECM3", 105, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 915, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_97@ECM3", 106, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 914, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_98@ECM3", 107, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 913, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_99@ECM3", 108, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 912, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_100@ECM3", 109, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 911, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_101@ECM3", 110, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 910, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_102@ECM3", 111, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 909, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_103@ECM3", 112, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 908, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_104@ECM3", 113, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 907, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_105@ECM3", 114, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 906, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_106@ECM3", 115, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 905, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_107@ECM3", 116, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 904, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_108@ECM3", 117, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 903, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_109@ECM3", 118, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 902, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_110@ECM3", 119, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 901, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_111@ECM3", 120, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 900, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_112@ECM3", 121, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 899, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_113@ECM3", 122, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 898, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_114@ECM3", 123, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 897, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_115@ECM3", 124, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 896, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_116@ECM3", 125, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 895, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_117@ECM3", 126, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 894, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_118@ECM3", 127, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 893, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_119@ECM3", 128, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 892, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_120@ECM3", 129, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 891, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_121@ECM3", 130, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 890, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_122@ECM3", 131, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 889, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_123@ECM3", 132, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 888, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_124@ECM3", 133, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 887, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_125@ECM3", 134, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 886, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_126@ECM3", 135, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 885, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_127@ECM3", 136, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 884, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_128@ECM3", 137, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 883, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_129@ECM3", 138, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 882, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_130@ECM3", 139, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 881, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_131@ECM3", 140, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 880, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_132@ECM3", 141, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 879, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_133@ECM3", 142, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 878, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_134@ECM3", 143, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 877, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_135@ECM3", 144, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 876, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_136@ECM3", 145, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 875, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_137@ECM3", 146, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 874, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_138@ECM3", 147, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 873, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_139@ECM3", 148, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 872, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_140@ECM3", 149, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 871, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_141@ECM3", 150, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 870, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_142@ECM3", 151, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 869, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_143@ECM3", 152, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 868, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_144@ECM3", 153, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 867, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_145@ECM3", 154, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 866, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_146@ECM3", 155, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 865, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_147@ECM3", 156, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 864, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_148@ECM3", 157, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 863, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_149@ECM3", 158, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 862, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_150@ECM3", 159, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 861, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_151@ECM3", 160, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 860, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_152@ECM3", 161, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 859, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_153@ECM3", 162, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 858, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_154@ECM3", 163, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 857, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_155@ECM3", 164, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 856, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_156@ECM3", 165, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 855, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_157@ECM3", 166, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 854, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_158@ECM3", 167, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 853, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_159@ECM3", 168, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 852, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_160@ECM3", 169, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 851, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_161@ECM3", 170, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 850, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_162@ECM3", 171, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 849, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_163@ECM3", 172, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 848, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_164@ECM3", 173, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 847, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_165@ECM3", 174, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 846, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_166@ECM3", 175, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 845, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_167@ECM3", 176, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 844, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_168@ECM3", 177, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 843, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_169@ECM3", 178, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 842, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_170@ECM3", 179, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 841, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_171@ECM3", 180, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 840, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_172@ECM3", 181, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 839, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_173@ECM3", 182, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 838, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_174@ECM3", 183, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 837, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_175@ECM3", 184, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 836, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_176@ECM3", 185, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 835, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_177@ECM3", 186, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 834, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_178@ECM3", 187, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 833, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_179@ECM3", 188, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 832, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_180@ECM3", 189, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 831, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_181@ECM3", 190, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 830, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_182@ECM3", 191, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 829, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_183@ECM3", 192, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 828, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_184@ECM3", 193, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 827, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_185@ECM3", 194, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 826, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_186@ECM3", 195, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 825, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_187@ECM3", 196, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 824, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_188@ECM3", 197, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 823, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_189@ECM3", 198, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 822, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_190@ECM3", 199, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 821, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_191@ECM3", 200, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 820, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_192@ECM3", 201, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 819, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_193@ECM3", 202, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 818, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_194@ECM3", 203, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 817, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_195@ECM3", 204, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 816, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_196@ECM3", 205, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 815, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_197@ECM3", 206, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 814, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_198@ECM3", 207, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 813, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_199@ECM3", 208, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 812, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_200@ECM3", 209, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 811, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_201@ECM3", 210, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 810, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_202@ECM3", 211, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 809, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_203@ECM3", 212, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 808, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_204@ECM3", 213, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 807, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_205@ECM3", 214, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 806, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_206@ECM3", 215, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 805, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_207@ECM3", 216, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 804, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_208@ECM3", 217, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 803, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_209@ECM3", 218, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 802, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_210@ECM3", 219, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 801, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_211@ECM3", 220, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 800, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_212@ECM3", 221, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 799, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_213@ECM3", 222, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 798, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_214@ECM3", 223, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 797, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_215@ECM3", 224, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 796, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_216@ECM3", 225, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 795, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_217@ECM3", 226, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 794, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_218@ECM3", 227, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 793, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_219@ECM3", 228, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 792, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_220@ECM3", 229, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 791, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_221@ECM3", 230, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 790, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_222@ECM3", 231, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 789, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_223@ECM3", 232, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 788, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_224@ECM3", 233, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 787, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_225@ECM3", 234, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 786, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_226@ECM3", 235, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 785, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_227@ECM3", 236, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 784, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_228@ECM3", 237, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 783, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_229@ECM3", 238, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 782, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_230@ECM3", 239, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 781, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_231@ECM3", 240, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 780, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_232@ECM3", 241, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 779, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_233@ECM3", 242, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 778, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_234@ECM3", 243, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 777, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_235@ECM3", 244, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 776, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_236@ECM3", 245, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 775, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_237@ECM3", 246, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 774, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_238@ECM3", 247, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 773, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_239@ECM3", 248, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 772, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_240@ECM3", 249, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 771, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_241@ECM3", 250, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 770, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_242@ECM3", 251, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 769, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_243@ECM3", 252, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 768, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_244@ECM3", 253, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 767, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_245@ECM3", 254, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 766, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_246@ECM3", 255, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 765, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_247@ECM3", 256, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 764, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_248@ECM3", 257, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 763, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_249@ECM3", 258, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 762, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_250@ECM3", 259, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 761, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_251@ECM3", 260, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 760, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_252@ECM3", 261, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 759, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_253@ECM3", 262, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 758, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_254@ECM3", 263, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 757, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_255@ECM3", 264, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 756, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_256@ECM3", 265, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 755, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_257@ECM3", 266, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 754, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_258@ECM3", 267, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 753, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_259@ECM3", 268, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 752, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_260@ECM3", 269, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 751, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_261@ECM3", 270, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 750, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_262@ECM3", 271, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 749, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_263@ECM3", 272, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 748, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_264@ECM3", 273, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 747, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_265@ECM3", 274, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 746, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_266@ECM3", 275, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 745, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_267@ECM3", 276, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 744, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_268@ECM3", 277, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 743, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_269@ECM3", 278, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 742, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_270@ECM3", 279, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 741, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_271@ECM3", 280, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 740, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_272@ECM3", 281, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 739, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_273@ECM3", 282, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 738, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_274@ECM3", 283, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 737, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_275@ECM3", 284, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 736, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_276@ECM3", 285, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 735, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_277@ECM3", 286, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 734, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_278@ECM3", 287, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 733, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_279@ECM3", 288, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 732, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_280@ECM3", 289, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 731, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_281@ECM3", 290, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 730, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_282@ECM3", 291, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 729, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_283@ECM3", 292, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 728, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_284@ECM3", 293, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 727, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_285@ECM3", 294, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 726, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_286@ECM3", 295, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 725, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_287@ECM3", 296, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 724, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_288@ECM3", 297, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 723, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_289@ECM3", 298, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 722, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_290@ECM3", 299, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 721, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_291@ECM3", 300, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 720, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_292@ECM3", 301, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 719, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_293@ECM3", 302, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 718, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_294@ECM3", 303, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 717, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_295@ECM3", 304, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 716, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_296@ECM3", 305, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 715, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_297@ECM3", 306, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 714, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_298@ECM3", 307, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 713, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_299@ECM3", 308, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 712, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_300@ECM3", 309, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 711, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_301@ECM3", 310, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 710, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_302@ECM3", 311, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 709, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_303@ECM3", 312, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 708, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_304@ECM3", 313, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 707, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_305@ECM3", 314, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 706, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_306@ECM3", 315, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 705, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_307@ECM3", 316, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 704, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_308@ECM3", 317, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 703, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_309@ECM3", 318, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 702, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_310@ECM3", 319, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 701, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_311@ECM3", 320, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 700, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_312@ECM3", 321, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 699, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_313@ECM3", 322, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 698, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_314@ECM3", 323, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 697, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_315@ECM3", 324, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 696, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_316@ECM3", 325, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 695, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_317@ECM3", 326, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 694, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_318@ECM3", 327, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 693, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_319@ECM3", 328, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 692, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_320@ECM3", 329, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 691, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_321@ECM3", 330, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 690, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_322@ECM3", 331, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 689, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_323@ECM3", 332, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 688, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_324@ECM3", 333, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 687, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_325@ECM3", 334, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 686, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_326@ECM3", 335, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 685, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_327@ECM3", 336, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 684, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_328@ECM3", 337, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 683, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_329@ECM3", 338, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 682, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_330@ECM3", 339, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 681, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_331@ECM3", 340, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 680, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_332@ECM3", 341, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 679, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_333@ECM3", 342, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 678, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_334@ECM3", 343, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 677, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_335@ECM3", 344, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 676, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_336@ECM3", 345, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 675, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_337@ECM3", 346, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 674, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_338@ECM3", 347, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 673, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_339@ECM3", 348, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 672, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_340@ECM3", 349, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 671, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_341@ECM3", 350, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 670, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_342@ECM3", 351, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 669, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_343@ECM3", 352, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 668, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_344@ECM3", 353, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 667, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_345@ECM3", 354, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 666, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_346@ECM3", 355, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 665, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_347@ECM3", 356, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 664, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_348@ECM3", 357, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 663, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_349@ECM3", 358, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 662, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_350@ECM3", 359, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 661, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_351@ECM3", 360, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 660, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_352@ECM3", 361, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 659, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_353@ECM3", 362, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 658, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_354@ECM3", 363, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 657, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_355@ECM3", 364, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 656, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_356@ECM3", 365, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 655, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_357@ECM3", 366, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 654, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_358@ECM3", 367, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 653, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_359@ECM3", 368, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 652, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_360@ECM3", 369, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 651, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_361@ECM3", 370, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 650, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_362@ECM3", 371, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 649, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_363@ECM3", 372, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 648, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_364@ECM3", 373, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 647, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_365@ECM3", 374, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 646, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_366@ECM3", 375, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 645, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_367@ECM3", 376, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 644, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_368@ECM3", 377, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 643, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_369@ECM3", 378, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 642, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_370@ECM3", 379, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 641, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_371@ECM3", 380, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 640, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_372@ECM3", 381, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 639, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_373@ECM3", 382, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 638, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_374@ECM3", 383, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 637, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_375@ECM3", 384, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 636, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_376@ECM3", 385, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 635, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_377@ECM3", 386, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 634, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_378@ECM3", 387, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 633, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_379@ECM3", 388, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 632, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_380@ECM3", 389, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 631, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_381@ECM3", 390, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 630, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_382@ECM3", 391, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 629, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_383@ECM3", 392, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 628, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_384@ECM3", 393, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 627, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_385@ECM3", 394, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 626, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_386@ECM3", 395, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 625, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_387@ECM3", 396, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 624, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_388@ECM3", 397, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 623, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_389@ECM3", 398, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 622, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_390@ECM3", 399, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 621, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_391@ECM3", 400, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 620, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_392@ECM3", 401, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 619, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_393@ECM3", 402, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 618, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_394@ECM3", 403, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 617, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_395@ECM3", 404, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 616, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_396@ECM3", 405, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 615, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_397@ECM3", 406, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 614, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_398@ECM3", 407, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 613, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_399@ECM3", 408, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 612, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_400@ECM3", 409, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 611, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_401@ECM3", 410, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 610, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_402@ECM3", 411, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 609, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_403@ECM3", 412, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 608, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_404@ECM3", 413, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 607, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_405@ECM3", 414, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 606, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_406@ECM3", 415, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 605, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_407@ECM3", 416, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 604, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_408@ECM3", 417, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 603, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_409@ECM3", 418, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 602, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_410@ECM3", 419, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 601, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_411@ECM3", 420, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 600, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_412@ECM3", 421, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 599, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_413@ECM3", 422, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 598, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_414@ECM3", 423, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 597, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_415@ECM3", 424, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 596, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_416@ECM3", 425, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 595, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_417@ECM3", 426, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 594, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_418@ECM3", 427, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 593, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_419@ECM3", 428, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 592, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_420@ECM3", 429, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 591, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_421@ECM3", 430, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 590, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_422@ECM3", 431, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 589, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_423@ECM3", 432, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 588, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_424@ECM3", 433, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 587, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_425@ECM3", 434, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 586, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_426@ECM3", 435, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 585, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_427@ECM3", 436, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 584, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_428@ECM3", 437, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 583, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_429@ECM3", 438, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 582, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_430@ECM3", 439, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 581, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_431@ECM3", 440, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 580, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_432@ECM3", 441, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 579, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_433@ECM3", 442, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 578, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_434@ECM3", 443, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 577, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_435@ECM3", 444, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 576, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_436@ECM3", 445, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 575, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_437@ECM3", 446, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 574, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_438@ECM3", 447, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 573, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_439@ECM3", 448, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 572, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_440@ECM3", 449, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 571, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_441@ECM3", 450, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 570, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_442@ECM3", 451, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 569, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_443@ECM3", 452, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 568, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_444@ECM3", 453, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 567, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_445@ECM3", 454, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 566, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_446@ECM3", 455, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 565, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_447@ECM3", 456, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 564, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_448@ECM3", 457, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 563, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_449@ECM3", 458, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 562, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_450@ECM3", 459, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 561, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_451@ECM3", 460, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 560, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_452@ECM3", 461, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 559, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_453@ECM3", 462, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 558, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_454@ECM3", 463, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 557, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_455@ECM3", 464, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 556, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_456@ECM3", 465, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 555, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_457@ECM3", 466, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 554, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_458@ECM3", 467, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 553, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_459@ECM3", 468, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 552, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_460@ECM3", 469, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 551, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_461@ECM3", 470, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 550, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_462@ECM3", 471, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 549, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_463@ECM3", 472, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 548, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_464@ECM3", 473, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 547, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_465@ECM3", 474, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 546, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_466@ECM3", 475, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 545, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_467@ECM3", 476, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 544, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_468@ECM3", 477, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 543, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_469@ECM3", 478, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 542, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_470@ECM3", 479, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 541, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_471@ECM3", 480, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 540, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_472@ECM3", 481, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 539, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_473@ECM3", 482, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 538, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_474@ECM3", 483, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 537, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_475@ECM3", 484, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 536, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_476@ECM3", 485, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 535, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_477@ECM3", 486, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 534, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_478@ECM3", 487, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 533, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_479@ECM3", 488, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 532, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_480@ECM3", 489, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 531, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_481@ECM3", 490, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 530, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_482@ECM3", 491, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 529, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_483@ECM3", 492, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 528, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_484@ECM3", 493, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 527, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_485@ECM3", 494, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 526, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_486@ECM3", 495, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 525, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_487@ECM3", 496, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 524, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_488@ECM3", 497, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 523, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_489@ECM3", 498, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 522, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_490@ECM3", 499, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 521, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_491@ECM3", 500, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 520, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_492@ECM3", 501, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 519, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_493@ECM3", 502, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 518, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_494@ECM3", 503, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 517, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_495@ECM3", 504, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 516, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_496@ECM3", 505, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 515, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_497@ECM3", 506, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 514, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_498@ECM3", 507, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 513, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_499@ECM3", 508, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 512, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_500@ECM3", 509, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 511, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_501@ECM3", 510, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 510, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_502@ECM3", 511, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 509, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_503@ECM3", 512, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 508, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_504@ECM3", 513, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 507, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_505@ECM3", 514, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 506, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_506@ECM3", 515, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 505, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_507@ECM3", 516, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 504, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_508@ECM3", 517, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 503, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_509@ECM3", 518, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 502, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_510@ECM3", 519, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 501, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_511@ECM3", 520, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 500, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_512@ECM3", 521, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 499, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_513@ECM3", 522, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 498, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_514@ECM3", 523, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 497, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_515@ECM3", 524, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 496, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_516@ECM3", 525, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 495, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_517@ECM3", 526, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 494, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_518@ECM3", 527, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 493, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_519@ECM3", 528, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 492, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_520@ECM3", 529, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 491, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_521@ECM3", 530, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 490, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_522@ECM3", 531, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 489, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_523@ECM3", 532, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 488, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_524@ECM3", 533, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 487, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_525@ECM3", 534, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 486, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_526@ECM3", 535, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 485, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_527@ECM3", 536, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 484, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_528@ECM3", 537, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 483, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_529@ECM3", 538, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 482, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_530@ECM3", 539, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 481, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_531@ECM3", 540, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 480, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_532@ECM3", 541, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 479, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_533@ECM3", 542, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 478, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_534@ECM3", 543, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 477, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_535@ECM3", 544, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 476, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_536@ECM3", 545, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 475, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_537@ECM3", 546, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 474, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_538@ECM3", 547, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 473, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_539@ECM3", 548, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 472, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_540@ECM3", 549, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 471, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_541@ECM3", 550, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 470, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_542@ECM3", 551, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 469, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_543@ECM3", 552, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 468, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_544@ECM3", 553, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 467, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_545@ECM3", 554, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 466, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_546@ECM3", 555, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 465, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_547@ECM3", 556, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 464, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_548@ECM3", 557, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 463, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_549@ECM3", 558, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 462, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_550@ECM3", 559, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 461, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_551@ECM3", 560, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 460, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_552@ECM3", 561, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 459, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_553@ECM3", 562, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 458, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_554@ECM3", 563, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 457, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_555@ECM3", 564, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 456, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_556@ECM3", 565, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 455, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_557@ECM3", 566, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 454, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_558@ECM3", 567, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 453, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_559@ECM3", 568, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 452, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_560@ECM3", 569, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 451, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_561@ECM3", 570, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 450, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_562@ECM3", 571, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 449, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_563@ECM3", 572, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 448, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_564@ECM3", 573, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 447, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_565@ECM3", 574, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 446, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_566@ECM3", 575, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 445, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_567@ECM3", 576, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 444, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_568@ECM3", 577, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 443, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_569@ECM3", 578, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 442, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_570@ECM3", 579, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 441, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_571@ECM3", 580, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 440, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_572@ECM3", 581, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 439, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_573@ECM3", 582, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 438, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_574@ECM3", 583, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 437, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_575@ECM3", 584, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 436, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_576@ECM3", 585, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 435, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_577@ECM3", 586, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 434, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_578@ECM3", 587, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 433, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_579@ECM3", 588, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 432, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_580@ECM3", 589, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 431, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_581@ECM3", 590, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 430, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_582@ECM3", 591, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 429, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_583@ECM3", 592, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 428, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_584@ECM3", 593, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 427, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_585@ECM3", 594, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 426, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_586@ECM3", 595, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 425, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_587@ECM3", 596, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 424, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_588@ECM3", 597, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 423, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_589@ECM3", 598, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 422, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_590@ECM3", 599, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 421, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_591@ECM3", 600, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 420, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_592@ECM3", 601, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 419, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_593@ECM3", 602, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 418, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_594@ECM3", 603, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 417, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_595@ECM3", 604, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 416, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_596@ECM3", 605, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 415, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_597@ECM3", 606, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 414, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_598@ECM3", 607, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 413, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_599@ECM3", 608, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 412, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_600@ECM3", 609, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 411, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_601@ECM3", 610, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 410, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_602@ECM3", 611, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 409, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_603@ECM3", 612, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 408, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_604@ECM3", 613, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 407, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_605@ECM3", 614, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 406, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_606@ECM3", 615, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 405, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_607@ECM3", 616, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 404, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_608@ECM3", 617, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 403, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_609@ECM3", 618, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 402, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_610@ECM3", 619, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 401, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_611@ECM3", 620, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 400, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_612@ECM3", 621, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 399, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_613@ECM3", 622, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 398, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_614@ECM3", 623, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 397, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_615@ECM3", 624, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 396, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_616@ECM3", 625, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 395, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_617@ECM3", 626, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 394, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_618@ECM3", 627, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 393, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_619@ECM3", 628, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 392, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_620@ECM3", 629, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 391, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_621@ECM3", 630, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 390, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_622@ECM3", 631, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 389, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_623@ECM3", 632, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 388, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_624@ECM3", 633, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 387, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_625@ECM3", 634, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 386, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_626@ECM3", 635, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 385, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_627@ECM3", 636, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 384, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_628@ECM3", 637, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 383, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_629@ECM3", 638, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 382, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_630@ECM3", 639, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 381, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_631@ECM3", 640, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 380, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_632@ECM3", 641, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 379, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_633@ECM3", 642, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 378, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_634@ECM3", 643, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 377, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_635@ECM3", 644, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 376, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_636@ECM3", 645, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 375, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_637@ECM3", 646, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 374, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_638@ECM3", 647, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 373, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_639@ECM3", 648, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 372, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_640@ECM3", 649, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 371, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_641@ECM3", 650, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 370, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_642@ECM3", 651, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 369, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_643@ECM3", 652, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 368, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_644@ECM3", 653, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 367, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_645@ECM3", 654, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 366, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_646@ECM3", 655, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 365, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_647@ECM3", 656, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 364, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_648@ECM3", 657, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 363, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_649@ECM3", 658, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 362, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_650@ECM3", 659, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 361, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_651@ECM3", 660, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 360, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_652@ECM3", 661, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 359, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_653@ECM3", 662, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 358, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_654@ECM3", 663, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 357, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_655@ECM3", 664, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 356, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_656@ECM3", 665, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 355, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_657@ECM3", 666, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 354, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_658@ECM3", 667, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 353, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_659@ECM3", 668, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 352, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_660@ECM3", 669, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 351, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_661@ECM3", 670, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 350, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_662@ECM3", 671, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 349, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_663@ECM3", 672, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 348, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_664@ECM3", 673, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 347, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_665@ECM3", 674, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 346, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_666@ECM3", 675, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 345, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_667@ECM3", 676, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 344, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_668@ECM3", 677, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 343, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_669@ECM3", 678, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 342, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_670@ECM3", 679, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 341, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_671@ECM3", 680, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 340, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_672@ECM3", 681, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 339, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_673@ECM3", 682, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 338, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_674@ECM3", 683, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 337, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_675@ECM3", 684, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 336, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_676@ECM3", 685, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 335, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_677@ECM3", 686, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 334, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_678@ECM3", 687, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 333, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_679@ECM3", 688, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 332, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_680@ECM3", 689, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 331, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_681@ECM3", 690, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 330, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_682@ECM3", 691, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 329, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_683@ECM3", 692, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 328, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_684@ECM3", 693, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 327, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_685@ECM3", 694, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 326, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_686@ECM3", 695, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 325, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_687@ECM3", 696, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 324, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_688@ECM3", 697, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 323, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_689@ECM3", 698, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 322, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_690@ECM3", 699, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 321, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_691@ECM3", 700, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 320, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_692@ECM3", 701, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 319, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_693@ECM3", 702, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 318, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_694@ECM3", 703, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 317, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_695@ECM3", 704, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 316, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_696@ECM3", 705, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 315, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_697@ECM3", 706, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 314, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_698@ECM3", 707, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 313, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_699@ECM3", 708, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 312, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_700@ECM3", 709, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 311, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_701@ECM3", 710, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 310, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_702@ECM3", 711, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 309, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_703@ECM3", 712, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 308, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_704@ECM3", 713, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 307, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_705@ECM3", 714, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 306, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_706@ECM3", 715, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 305, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_707@ECM3", 716, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 304, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_708@ECM3", 717, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 303, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_709@ECM3", 718, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 302, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_710@ECM3", 719, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 301, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_711@ECM3", 720, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 300, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_712@ECM3", 721, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 299, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_713@ECM3", 722, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 298, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_714@ECM3", 723, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 297, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_715@ECM3", 724, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 296, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_716@ECM3", 725, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 295, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_717@ECM3", 726, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 294, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_718@ECM3", 727, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 293, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_719@ECM3", 728, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 292, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_720@ECM3", 729, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 291, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_721@ECM3", 730, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 290, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_722@ECM3", 731, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 289, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_723@ECM3", 732, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 288, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_724@ECM3", 733, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 287, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_725@ECM3", 734, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 286, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_726@ECM3", 735, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 285, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_727@ECM3", 736, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 284, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_728@ECM3", 737, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 283, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_729@ECM3", 738, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 282, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_730@ECM3", 739, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 281, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_731@ECM3", 740, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 280, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_732@ECM3", 741, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 279, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_733@ECM3", 742, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 278, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_734@ECM3", 743, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 277, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_735@ECM3", 744, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 276, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_736@ECM3", 745, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 275, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_737@ECM3", 746, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 274, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_738@ECM3", 747, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 273, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_739@ECM3", 748, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 272, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_740@ECM3", 749, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 271, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_741@ECM3", 750, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 270, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_742@ECM3", 751, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 269, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_743@ECM3", 752, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 268, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_744@ECM3", 753, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 267, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_745@ECM3", 754, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 266, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_746@ECM3", 755, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 265, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_747@ECM3", 756, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 264, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_748@ECM3", 757, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 263, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_749@ECM3", 758, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 262, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_750@ECM3", 759, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 261, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_751@ECM3", 760, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 260, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_752@ECM3", 761, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 259, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_753@ECM3", 762, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 258, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_754@ECM3", 763, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 257, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_755@ECM3", 764, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 256, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_756@ECM3", 765, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 255, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_757@ECM3", 766, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 254, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_758@ECM3", 767, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 253, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_759@ECM3", 768, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 252, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_760@ECM3", 769, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 251, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_761@ECM3", 770, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 250, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_762@ECM3", 771, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 249, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_763@ECM3", 772, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 248, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_764@ECM3", 773, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 247, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_765@ECM3", 774, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 246, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_766@ECM3", 775, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 245, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_767@ECM3", 776, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 244, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_768@ECM3", 777, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 243, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_769@ECM3", 778, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 242, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_770@ECM3", 779, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 241, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_771@ECM3", 780, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 240, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_772@ECM3", 781, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 239, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_773@ECM3", 782, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 238, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_774@ECM3", 783, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 237, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_775@ECM3", 784, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 236, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_776@ECM3", 785, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 235, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_777@ECM3", 786, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 234, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_778@ECM3", 787, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 233, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_779@ECM3", 788, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 232, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_780@ECM3", 789, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 231, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_781@ECM3", 790, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 230, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_782@ECM3", 791, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 229, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_783@ECM3", 792, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 228, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_784@ECM3", 793, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 227, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_785@ECM3", 794, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 226, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_786@ECM3", 795, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 225, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_787@ECM3", 796, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 224, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_788@ECM3", 797, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 223, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_789@ECM3", 798, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 222, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_790@ECM3", 799, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 221, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_791@ECM3", 800, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 220, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_792@ECM3", 801, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 219, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_793@ECM3", 802, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 218, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_794@ECM3", 803, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 217, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_795@ECM3", 804, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 216, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_796@ECM3", 805, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 215, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_797@ECM3", 806, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 214, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_798@ECM3", 807, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 213, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_799@ECM3", 808, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 212, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_800@ECM3", 809, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 211, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_801@ECM3", 810, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 210, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_802@ECM3", 811, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 209, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_803@ECM3", 812, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 208, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_804@ECM3", 813, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 207, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_805@ECM3", 814, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 206, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_806@ECM3", 815, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 205, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_807@ECM3", 816, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 204, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_808@ECM3", 817, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 203, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_809@ECM3", 818, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 202, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_810@ECM3", 819, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 201, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_811@ECM3", 820, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 200, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_812@ECM3", 821, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 199, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_813@ECM3", 822, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 198, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_814@ECM3", 823, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 197, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_815@ECM3", 824, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 196, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_816@ECM3", 825, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 195, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_817@ECM3", 826, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 194, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_818@ECM3", 827, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 193, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_819@ECM3", 828, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 192, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_820@ECM3", 829, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 191, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_821@ECM3", 830, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 190, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_822@ECM3", 831, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 189, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_823@ECM3", 832, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 188, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_824@ECM3", 833, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 187, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_825@ECM3", 834, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 186, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_826@ECM3", 835, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 185, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_827@ECM3", 836, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 184, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_828@ECM3", 837, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 183, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_829@ECM3", 838, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 182, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_830@ECM3", 839, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 181, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_831@ECM3", 840, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 180, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_832@ECM3", 841, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 179, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_833@ECM3", 842, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 178, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_834@ECM3", 843, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 177, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_835@ECM3", 844, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 176, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_836@ECM3", 845, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 175, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_837@ECM3", 846, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 174, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_838@ECM3", 847, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 173, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_839@ECM3", 848, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 172, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_840@ECM3", 849, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 171, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_841@ECM3", 850, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 170, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_842@ECM3", 851, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 169, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_843@ECM3", 852, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 168, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_844@ECM3", 853, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 167, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_845@ECM3", 854, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 166, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_846@ECM3", 855, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 165, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_847@ECM3", 856, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 164, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_848@ECM3", 857, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 163, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_849@ECM3", 858, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 162, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_850@ECM3", 859, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 161, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_851@ECM3", 860, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 160, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_852@ECM3", 861, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 159, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_853@ECM3", 862, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 158, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_854@ECM3", 863, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 157, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_855@ECM3", 864, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 156, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_856@ECM3", 865, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 155, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_857@ECM3", 866, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 154, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_858@ECM3", 867, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 153, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_859@ECM3", 868, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 152, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_860@ECM3", 869, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 151, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_861@ECM3", 870, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 150, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_862@ECM3", 871, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 149, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_863@ECM3", 872, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 148, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_864@ECM3", 873, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 147, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_865@ECM3", 874, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 146, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_866@ECM3", 875, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 145, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_867@ECM3", 876, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 144, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_868@ECM3", 877, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 143, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_869@ECM3", 878, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 142, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_870@ECM3", 879, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 141, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_871@ECM3", 880, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 140, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_872@ECM3", 881, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 139, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_873@ECM3", 882, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 138, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_874@ECM3", 883, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 137, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_875@ECM3", 884, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 136, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_876@ECM3", 885, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 135, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_877@ECM3", 886, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 134, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_878@ECM3", 887, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 133, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_879@ECM3", 888, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 132, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_880@ECM3", 889, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 131, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_881@ECM3", 890, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 130, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_882@ECM3", 891, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 129, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_883@ECM3", 892, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 128, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_884@ECM3", 893, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 127, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_885@ECM3", 894, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 126, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_886@ECM3", 895, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 125, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_887@ECM3", 896, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 124, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_888@ECM3", 897, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 123, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_889@ECM3", 898, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 122, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_890@ECM3", 899, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 121, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_891@ECM3", 900, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 120, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_892@ECM3", 901, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 119, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_893@ECM3", 902, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 118, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_894@ECM3", 903, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 117, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_895@ECM3", 904, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 116, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_896@ECM3", 905, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 115, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_897@ECM3", 906, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 114, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_898@ECM3", 907, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 113, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_899@ECM3", 908, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 112, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_900@ECM3", 909, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 111, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_901@ECM3", 910, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 110, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_902@ECM3", 911, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 109, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_903@ECM3", 912, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 108, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_904@ECM3", 913, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 107, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_905@ECM3", 914, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 106, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_906@ECM3", 915, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 105, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_907@ECM3", 916, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 104, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_908@ECM3", 917, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 103, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_909@ECM3", 918, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 102, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_910@ECM3", 919, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 101, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_911@ECM3", 920, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 100, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_912@ECM3", 921, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 99, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_913@ECM3", 922, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 98, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_914@ECM3", 923, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 97, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_915@ECM3", 924, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 96, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_916@ECM3", 925, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 95, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_917@ECM3", 926, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 94, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_918@ECM3", 927, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 93, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_919@ECM3", 928, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 92, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_920@ECM3", 929, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 91, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_921@ECM3", 930, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 90, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_922@ECM3", 931, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 89, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_923@ECM3", 932, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 88, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_924@ECM3", 933, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 87, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_925@ECM3", 934, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 86, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_926@ECM3", 935, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 85, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_927@ECM3", 936, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 84, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_928@ECM3", 937, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 83, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_929@ECM3", 938, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 82, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_930@ECM3", 939, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 81, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_931@ECM3", 940, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 80, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_932@ECM3", 941, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 79, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_933@ECM3", 942, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 78, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_934@ECM3", 943, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 77, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_935@ECM3", 944, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 76, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_936@ECM3", 945, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 75, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_937@ECM3", 946, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 74, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_938@ECM3", 947, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 73, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_939@ECM3", 948, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 72, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_940@ECM3", 949, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 71, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_941@ECM3", 950, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 70, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_942@ECM3", 951, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 69, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_943@ECM3", 952, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 68, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_944@ECM3", 953, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 67, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_945@ECM3", 954, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 66, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_946@ECM3", 955, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 65, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_947@ECM3", 956, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 64, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_948@ECM3", 957, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 63, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_949@ECM3", 958, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 62, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_950@ECM3", 959, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 61, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_951@ECM3", 960, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 60, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_952@ECM3", 961, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 59, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_953@ECM3", 962, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 58, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_954@ECM3", 963, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 57, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_955@ECM3", 964, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 56, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_956@ECM3", 965, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 55, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_957@ECM3", 966, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 54, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_958@ECM3", 967, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 53, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_959@ECM3", 968, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 52, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_960@ECM3", 969, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 51, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_961@ECM3", 970, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 50, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_962@ECM3", 971, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 49, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_963@ECM3", 972, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 48, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_964@ECM3", 973, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 47, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_965@ECM3", 974, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 46, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_966@ECM3", 975, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 45, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_967@ECM3", 976, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 44, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_968@ECM3", 977, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 43, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_969@ECM3", 978, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 42, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_970@ECM3", 979, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 41, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_971@ECM3", 980, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 40, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_972@ECM3", 981, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 39, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_973@ECM3", 982, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 38, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_974@ECM3", 983, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 37, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_975@ECM3", 984, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 36, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_976@ECM3", 985, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 35, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_977@ECM3", 986, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 34, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_978@ECM3", 987, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 33, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_979@ECM3", 988, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 32, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_980@ECM3", 989, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 31, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_981@ECM3", 990, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 30, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_982@ECM3", 991, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 29, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_983@ECM3", 992, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 28, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_984@ECM3", 993, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 27, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_985@ECM3", 994, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 26, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_986@ECM3", 995, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 25, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_987@ECM3", 996, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 24, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_988@ECM3", 997, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 23, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_989@ECM3", 998, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 22, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_990@ECM3", 999, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 21, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_991@ECM3", 1000, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 20, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_992@ECM3", 1001, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 19, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_993@ECM3", 1002, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 18, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_994@ECM3", 1003, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 17, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_995@ECM3", 1004, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 16, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_996@ECM3", 1005, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 15, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_997@ECM3", 1006, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 14, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_998@ECM3", 1007, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 13, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "lp_consumer_999@ECM3", 1008, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 12, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "consumer_hp_supplier_00@ECM3", 1009, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 3, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "consumer_lp_supplier_00@ECM3", 1010, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 2, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "ACE_ES_Dispatch_Queue-25000.us", 1011, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1021, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "ACE_ES_Dispatch_Queue-50000.us", 1012, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1019, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "ACE_ES_Dispatch_Queue-100000.us", 1013, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1017, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "ACE_ES_Dispatch_Queue-200000.us", 1014, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1015, 0, (RtecScheduler::Info_Type_t) 0 }, -{ "ACE_ES_Dispatch_Queue-1000000.us", 1015, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 0, 0, (RtecScheduler::Info_Type_t) 0 } + { "Reactor_Task-25000.us", 1, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1022, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "Reactor_Task-50000.us", 2, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1020, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "Reactor_Task-100000.us", 3, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1018, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "Reactor_Task-200000.us", 4, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1016, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "Reactor_Task-1000000.us", 5, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "hp_supplier_00@ECM3", 6, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 10, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_supplier_00@ECM3", 7, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 9, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "hp_consumer_00@ECM3", 8, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1012, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_00@ECM3", 9, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1011, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_01@ECM3", 10, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1010, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_02@ECM3", 11, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1009, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_03@ECM3", 12, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1008, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_04@ECM3", 13, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1007, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_05@ECM3", 14, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1006, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_06@ECM3", 15, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1005, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_07@ECM3", 16, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1004, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_08@ECM3", 17, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1003, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_09@ECM3", 18, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1002, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_10@ECM3", 19, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1001, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_11@ECM3", 20, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 1000, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_12@ECM3", 21, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 999, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_13@ECM3", 22, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 998, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_14@ECM3", 23, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 997, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_15@ECM3", 24, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 996, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_16@ECM3", 25, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 995, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_17@ECM3", 26, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 994, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_18@ECM3", 27, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 993, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_19@ECM3", 28, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 992, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_20@ECM3", 29, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 991, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_21@ECM3", 30, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 990, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_22@ECM3", 31, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 989, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_23@ECM3", 32, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 988, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_24@ECM3", 33, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 987, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_25@ECM3", 34, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 986, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_26@ECM3", 35, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 985, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_27@ECM3", 36, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 984, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_28@ECM3", 37, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 983, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_29@ECM3", 38, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 982, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_30@ECM3", 39, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 981, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_31@ECM3", 40, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 980, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_32@ECM3", 41, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 979, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_33@ECM3", 42, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 978, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_34@ECM3", 43, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 977, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_35@ECM3", 44, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 976, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_36@ECM3", 45, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 975, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_37@ECM3", 46, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 974, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_38@ECM3", 47, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 973, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_39@ECM3", 48, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 972, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_40@ECM3", 49, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 971, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_41@ECM3", 50, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 970, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_42@ECM3", 51, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 969, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_43@ECM3", 52, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 968, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_44@ECM3", 53, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 967, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_45@ECM3", 54, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 966, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_46@ECM3", 55, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 965, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_47@ECM3", 56, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 964, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_48@ECM3", 57, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 963, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_49@ECM3", 58, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 962, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_50@ECM3", 59, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 961, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_51@ECM3", 60, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 960, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_52@ECM3", 61, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 959, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_53@ECM3", 62, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 958, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_54@ECM3", 63, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 957, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_55@ECM3", 64, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 956, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_56@ECM3", 65, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 955, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_57@ECM3", 66, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 954, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_58@ECM3", 67, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 953, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_59@ECM3", 68, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 952, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_60@ECM3", 69, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 951, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_61@ECM3", 70, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 950, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_62@ECM3", 71, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 949, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_63@ECM3", 72, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 948, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_64@ECM3", 73, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 947, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_65@ECM3", 74, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 946, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_66@ECM3", 75, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 945, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_67@ECM3", 76, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 944, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_68@ECM3", 77, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 943, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_69@ECM3", 78, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 942, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_70@ECM3", 79, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 941, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_71@ECM3", 80, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 940, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_72@ECM3", 81, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 939, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_73@ECM3", 82, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 938, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_74@ECM3", 83, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 937, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_75@ECM3", 84, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 936, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_76@ECM3", 85, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 935, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_77@ECM3", 86, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 934, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_78@ECM3", 87, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 933, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_79@ECM3", 88, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 932, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_80@ECM3", 89, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 931, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_81@ECM3", 90, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 930, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_82@ECM3", 91, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 929, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_83@ECM3", 92, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 928, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_84@ECM3", 93, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 927, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_85@ECM3", 94, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 926, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_86@ECM3", 95, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 925, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_87@ECM3", 96, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 924, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_88@ECM3", 97, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 923, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_89@ECM3", 98, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 922, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_90@ECM3", 99, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 921, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_91@ECM3", 100, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 920, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_92@ECM3", 101, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 919, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_93@ECM3", 102, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 918, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_94@ECM3", 103, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 917, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_95@ECM3", 104, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 916, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_96@ECM3", 105, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 915, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_97@ECM3", 106, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 914, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_98@ECM3", 107, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 913, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_99@ECM3", 108, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 912, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_100@ECM3", 109, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 911, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_101@ECM3", 110, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 910, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_102@ECM3", 111, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 909, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_103@ECM3", 112, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 908, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_104@ECM3", 113, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 907, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_105@ECM3", 114, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 906, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_106@ECM3", 115, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 905, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_107@ECM3", 116, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 904, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_108@ECM3", 117, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 903, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_109@ECM3", 118, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 902, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_110@ECM3", 119, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 901, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_111@ECM3", 120, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 900, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_112@ECM3", 121, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 899, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_113@ECM3", 122, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 898, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_114@ECM3", 123, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 897, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_115@ECM3", 124, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 896, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_116@ECM3", 125, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 895, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_117@ECM3", 126, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 894, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_118@ECM3", 127, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 893, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_119@ECM3", 128, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 892, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_120@ECM3", 129, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 891, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_121@ECM3", 130, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 890, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_122@ECM3", 131, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 889, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_123@ECM3", 132, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 888, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_124@ECM3", 133, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 887, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_125@ECM3", 134, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 886, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_126@ECM3", 135, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 885, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_127@ECM3", 136, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 884, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_128@ECM3", 137, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 883, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_129@ECM3", 138, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 882, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_130@ECM3", 139, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 881, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_131@ECM3", 140, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 880, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_132@ECM3", 141, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 879, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_133@ECM3", 142, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 878, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_134@ECM3", 143, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 877, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_135@ECM3", 144, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 876, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_136@ECM3", 145, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 875, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_137@ECM3", 146, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 874, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_138@ECM3", 147, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 873, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_139@ECM3", 148, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 872, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_140@ECM3", 149, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 871, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_141@ECM3", 150, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 870, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_142@ECM3", 151, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 869, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_143@ECM3", 152, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 868, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_144@ECM3", 153, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 867, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_145@ECM3", 154, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 866, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_146@ECM3", 155, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 865, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_147@ECM3", 156, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 864, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_148@ECM3", 157, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 863, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_149@ECM3", 158, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 862, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_150@ECM3", 159, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 861, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_151@ECM3", 160, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 860, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_152@ECM3", 161, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 859, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_153@ECM3", 162, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 858, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_154@ECM3", 163, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 857, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_155@ECM3", 164, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 856, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_156@ECM3", 165, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 855, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_157@ECM3", 166, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 854, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_158@ECM3", 167, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 853, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_159@ECM3", 168, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 852, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_160@ECM3", 169, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 851, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_161@ECM3", 170, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 850, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_162@ECM3", 171, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 849, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_163@ECM3", 172, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 848, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_164@ECM3", 173, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 847, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_165@ECM3", 174, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 846, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_166@ECM3", 175, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 845, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_167@ECM3", 176, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 844, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_168@ECM3", 177, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 843, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_169@ECM3", 178, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 842, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_170@ECM3", 179, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 841, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_171@ECM3", 180, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 840, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_172@ECM3", 181, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 839, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_173@ECM3", 182, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 838, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_174@ECM3", 183, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 837, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_175@ECM3", 184, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 836, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_176@ECM3", 185, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 835, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_177@ECM3", 186, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 834, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_178@ECM3", 187, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 833, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_179@ECM3", 188, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 832, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_180@ECM3", 189, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 831, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_181@ECM3", 190, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 830, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_182@ECM3", 191, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 829, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_183@ECM3", 192, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 828, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_184@ECM3", 193, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 827, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_185@ECM3", 194, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 826, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_186@ECM3", 195, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 825, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_187@ECM3", 196, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 824, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_188@ECM3", 197, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 823, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_189@ECM3", 198, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 822, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_190@ECM3", 199, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 821, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_191@ECM3", 200, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 820, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_192@ECM3", 201, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 819, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_193@ECM3", 202, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 818, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_194@ECM3", 203, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 817, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_195@ECM3", 204, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 816, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_196@ECM3", 205, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 815, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_197@ECM3", 206, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 814, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_198@ECM3", 207, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 813, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_199@ECM3", 208, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 812, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_200@ECM3", 209, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 811, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_201@ECM3", 210, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 810, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_202@ECM3", 211, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 809, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_203@ECM3", 212, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 808, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_204@ECM3", 213, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 807, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_205@ECM3", 214, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 806, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_206@ECM3", 215, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 805, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_207@ECM3", 216, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 804, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_208@ECM3", 217, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 803, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_209@ECM3", 218, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 802, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_210@ECM3", 219, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 801, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_211@ECM3", 220, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 800, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_212@ECM3", 221, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 799, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_213@ECM3", 222, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 798, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_214@ECM3", 223, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 797, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_215@ECM3", 224, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 796, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_216@ECM3", 225, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 795, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_217@ECM3", 226, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 794, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_218@ECM3", 227, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 793, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_219@ECM3", 228, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 792, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_220@ECM3", 229, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 791, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_221@ECM3", 230, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 790, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_222@ECM3", 231, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 789, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_223@ECM3", 232, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 788, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_224@ECM3", 233, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 787, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_225@ECM3", 234, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 786, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_226@ECM3", 235, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 785, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_227@ECM3", 236, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 784, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_228@ECM3", 237, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 783, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_229@ECM3", 238, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 782, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_230@ECM3", 239, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 781, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_231@ECM3", 240, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 780, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_232@ECM3", 241, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 779, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_233@ECM3", 242, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 778, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_234@ECM3", 243, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 777, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_235@ECM3", 244, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 776, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_236@ECM3", 245, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 775, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_237@ECM3", 246, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 774, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_238@ECM3", 247, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 773, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_239@ECM3", 248, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 772, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_240@ECM3", 249, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 771, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_241@ECM3", 250, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 770, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_242@ECM3", 251, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 769, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_243@ECM3", 252, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 768, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_244@ECM3", 253, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 767, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_245@ECM3", 254, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 766, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_246@ECM3", 255, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 765, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_247@ECM3", 256, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 764, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_248@ECM3", 257, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 763, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_249@ECM3", 258, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 762, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_250@ECM3", 259, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 761, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_251@ECM3", 260, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 760, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_252@ECM3", 261, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 759, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_253@ECM3", 262, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 758, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_254@ECM3", 263, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 757, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_255@ECM3", 264, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 756, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_256@ECM3", 265, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 755, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_257@ECM3", 266, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 754, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_258@ECM3", 267, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 753, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_259@ECM3", 268, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 752, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_260@ECM3", 269, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 751, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_261@ECM3", 270, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 750, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_262@ECM3", 271, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 749, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_263@ECM3", 272, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 748, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_264@ECM3", 273, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 747, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_265@ECM3", 274, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 746, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_266@ECM3", 275, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 745, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_267@ECM3", 276, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 744, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_268@ECM3", 277, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 743, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_269@ECM3", 278, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 742, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_270@ECM3", 279, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 741, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_271@ECM3", 280, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 740, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_272@ECM3", 281, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 739, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_273@ECM3", 282, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 738, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_274@ECM3", 283, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 737, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_275@ECM3", 284, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 736, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_276@ECM3", 285, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 735, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_277@ECM3", 286, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 734, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_278@ECM3", 287, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 733, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_279@ECM3", 288, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 732, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_280@ECM3", 289, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 731, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_281@ECM3", 290, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 730, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_282@ECM3", 291, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 729, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_283@ECM3", 292, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 728, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_284@ECM3", 293, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 727, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_285@ECM3", 294, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 726, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_286@ECM3", 295, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 725, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_287@ECM3", 296, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 724, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_288@ECM3", 297, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 723, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_289@ECM3", 298, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 722, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_290@ECM3", 299, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 721, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_291@ECM3", 300, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 720, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_292@ECM3", 301, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 719, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_293@ECM3", 302, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 718, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_294@ECM3", 303, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 717, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_295@ECM3", 304, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 716, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_296@ECM3", 305, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 715, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_297@ECM3", 306, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 714, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_298@ECM3", 307, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 713, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_299@ECM3", 308, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 712, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_300@ECM3", 309, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 711, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_301@ECM3", 310, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 710, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_302@ECM3", 311, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 709, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_303@ECM3", 312, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 708, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_304@ECM3", 313, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 707, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_305@ECM3", 314, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 706, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_306@ECM3", 315, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 705, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_307@ECM3", 316, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 704, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_308@ECM3", 317, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 703, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_309@ECM3", 318, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 702, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_310@ECM3", 319, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 701, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_311@ECM3", 320, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 700, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_312@ECM3", 321, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 699, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_313@ECM3", 322, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 698, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_314@ECM3", 323, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 697, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_315@ECM3", 324, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 696, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_316@ECM3", 325, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 695, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_317@ECM3", 326, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 694, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_318@ECM3", 327, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 693, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_319@ECM3", 328, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 692, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_320@ECM3", 329, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 691, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_321@ECM3", 330, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 690, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_322@ECM3", 331, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 689, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_323@ECM3", 332, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 688, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_324@ECM3", 333, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 687, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_325@ECM3", 334, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 686, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_326@ECM3", 335, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 685, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_327@ECM3", 336, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 684, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_328@ECM3", 337, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 683, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_329@ECM3", 338, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 682, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_330@ECM3", 339, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 681, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_331@ECM3", 340, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 680, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_332@ECM3", 341, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 679, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_333@ECM3", 342, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 678, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_334@ECM3", 343, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 677, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_335@ECM3", 344, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 676, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_336@ECM3", 345, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 675, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_337@ECM3", 346, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 674, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_338@ECM3", 347, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 673, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_339@ECM3", 348, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 672, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_340@ECM3", 349, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 671, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_341@ECM3", 350, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 670, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_342@ECM3", 351, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 669, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_343@ECM3", 352, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 668, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_344@ECM3", 353, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 667, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_345@ECM3", 354, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 666, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_346@ECM3", 355, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 665, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_347@ECM3", 356, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 664, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_348@ECM3", 357, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 663, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_349@ECM3", 358, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 662, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_350@ECM3", 359, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 661, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_351@ECM3", 360, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 660, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_352@ECM3", 361, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 659, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_353@ECM3", 362, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 658, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_354@ECM3", 363, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 657, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_355@ECM3", 364, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 656, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_356@ECM3", 365, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 655, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_357@ECM3", 366, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 654, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_358@ECM3", 367, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 653, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_359@ECM3", 368, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 652, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_360@ECM3", 369, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 651, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_361@ECM3", 370, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 650, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_362@ECM3", 371, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 649, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_363@ECM3", 372, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 648, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_364@ECM3", 373, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 647, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_365@ECM3", 374, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 646, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_366@ECM3", 375, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 645, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_367@ECM3", 376, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 644, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_368@ECM3", 377, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 643, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_369@ECM3", 378, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 642, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_370@ECM3", 379, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 641, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_371@ECM3", 380, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 640, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_372@ECM3", 381, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 639, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_373@ECM3", 382, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 638, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_374@ECM3", 383, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 637, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_375@ECM3", 384, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 636, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_376@ECM3", 385, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 635, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_377@ECM3", 386, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 634, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_378@ECM3", 387, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 633, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_379@ECM3", 388, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 632, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_380@ECM3", 389, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 631, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_381@ECM3", 390, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 630, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_382@ECM3", 391, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 629, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_383@ECM3", 392, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 628, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_384@ECM3", 393, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 627, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_385@ECM3", 394, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 626, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_386@ECM3", 395, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 625, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_387@ECM3", 396, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 624, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_388@ECM3", 397, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 623, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_389@ECM3", 398, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 622, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_390@ECM3", 399, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 621, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_391@ECM3", 400, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 620, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_392@ECM3", 401, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 619, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_393@ECM3", 402, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 618, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_394@ECM3", 403, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 617, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_395@ECM3", 404, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 616, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_396@ECM3", 405, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 615, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_397@ECM3", 406, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 614, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_398@ECM3", 407, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 613, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_399@ECM3", 408, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 612, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_400@ECM3", 409, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 611, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_401@ECM3", 410, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 610, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_402@ECM3", 411, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 609, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_403@ECM3", 412, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 608, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_404@ECM3", 413, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 607, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_405@ECM3", 414, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 606, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_406@ECM3", 415, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 605, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_407@ECM3", 416, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 604, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_408@ECM3", 417, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 603, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_409@ECM3", 418, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 602, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_410@ECM3", 419, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 601, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_411@ECM3", 420, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 600, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_412@ECM3", 421, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 599, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_413@ECM3", 422, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 598, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_414@ECM3", 423, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 597, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_415@ECM3", 424, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 596, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_416@ECM3", 425, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 595, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_417@ECM3", 426, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 594, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_418@ECM3", 427, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 593, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_419@ECM3", 428, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 592, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_420@ECM3", 429, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 591, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_421@ECM3", 430, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 590, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_422@ECM3", 431, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 589, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_423@ECM3", 432, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 588, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_424@ECM3", 433, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 587, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_425@ECM3", 434, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 586, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_426@ECM3", 435, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 585, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_427@ECM3", 436, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 584, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_428@ECM3", 437, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 583, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_429@ECM3", 438, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 582, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_430@ECM3", 439, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 581, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_431@ECM3", 440, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 580, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_432@ECM3", 441, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 579, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_433@ECM3", 442, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 578, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_434@ECM3", 443, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 577, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_435@ECM3", 444, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 576, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_436@ECM3", 445, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 575, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_437@ECM3", 446, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 574, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_438@ECM3", 447, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 573, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_439@ECM3", 448, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 572, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_440@ECM3", 449, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 571, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_441@ECM3", 450, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 570, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_442@ECM3", 451, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 569, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_443@ECM3", 452, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 568, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_444@ECM3", 453, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 567, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_445@ECM3", 454, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 566, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_446@ECM3", 455, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 565, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_447@ECM3", 456, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 564, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_448@ECM3", 457, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 563, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_449@ECM3", 458, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 562, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_450@ECM3", 459, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 561, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_451@ECM3", 460, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 560, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_452@ECM3", 461, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 559, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_453@ECM3", 462, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 558, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_454@ECM3", 463, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 557, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_455@ECM3", 464, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 556, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_456@ECM3", 465, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 555, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_457@ECM3", 466, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 554, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_458@ECM3", 467, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 553, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_459@ECM3", 468, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 552, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_460@ECM3", 469, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 551, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_461@ECM3", 470, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 550, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_462@ECM3", 471, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 549, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_463@ECM3", 472, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 548, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_464@ECM3", 473, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 547, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_465@ECM3", 474, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 546, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_466@ECM3", 475, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 545, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_467@ECM3", 476, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 544, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_468@ECM3", 477, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 543, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_469@ECM3", 478, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 542, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_470@ECM3", 479, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 541, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_471@ECM3", 480, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 540, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_472@ECM3", 481, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 539, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_473@ECM3", 482, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 538, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_474@ECM3", 483, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 537, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_475@ECM3", 484, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 536, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_476@ECM3", 485, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 535, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_477@ECM3", 486, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 534, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_478@ECM3", 487, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 533, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_479@ECM3", 488, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 532, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_480@ECM3", 489, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 531, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_481@ECM3", 490, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 530, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_482@ECM3", 491, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 529, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_483@ECM3", 492, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 528, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_484@ECM3", 493, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 527, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_485@ECM3", 494, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 526, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_486@ECM3", 495, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 525, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_487@ECM3", 496, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 524, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_488@ECM3", 497, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 523, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_489@ECM3", 498, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 522, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_490@ECM3", 499, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 521, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_491@ECM3", 500, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 520, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_492@ECM3", 501, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 519, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_493@ECM3", 502, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 518, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_494@ECM3", 503, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 517, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_495@ECM3", 504, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 516, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_496@ECM3", 505, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 515, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_497@ECM3", 506, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 514, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_498@ECM3", 507, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 513, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_499@ECM3", 508, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 512, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_500@ECM3", 509, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 511, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_501@ECM3", 510, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 510, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_502@ECM3", 511, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 509, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_503@ECM3", 512, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 508, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_504@ECM3", 513, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 507, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_505@ECM3", 514, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 506, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_506@ECM3", 515, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 505, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_507@ECM3", 516, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 504, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_508@ECM3", 517, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 503, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_509@ECM3", 518, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 502, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_510@ECM3", 519, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 501, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_511@ECM3", 520, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 500, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_512@ECM3", 521, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 499, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_513@ECM3", 522, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 498, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_514@ECM3", 523, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 497, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_515@ECM3", 524, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 496, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_516@ECM3", 525, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 495, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_517@ECM3", 526, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 494, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_518@ECM3", 527, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 493, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_519@ECM3", 528, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 492, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_520@ECM3", 529, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 491, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_521@ECM3", 530, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 490, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_522@ECM3", 531, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 489, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_523@ECM3", 532, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 488, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_524@ECM3", 533, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 487, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_525@ECM3", 534, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 486, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_526@ECM3", 535, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 485, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_527@ECM3", 536, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 484, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_528@ECM3", 537, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 483, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_529@ECM3", 538, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 482, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_530@ECM3", 539, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 481, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_531@ECM3", 540, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 480, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_532@ECM3", 541, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 479, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_533@ECM3", 542, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 478, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_534@ECM3", 543, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 477, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_535@ECM3", 544, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 476, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_536@ECM3", 545, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 475, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_537@ECM3", 546, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 474, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_538@ECM3", 547, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 473, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_539@ECM3", 548, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 472, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_540@ECM3", 549, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 471, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_541@ECM3", 550, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 470, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_542@ECM3", 551, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 469, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_543@ECM3", 552, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 468, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_544@ECM3", 553, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 467, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_545@ECM3", 554, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 466, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_546@ECM3", 555, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 465, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_547@ECM3", 556, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 464, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_548@ECM3", 557, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 463, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_549@ECM3", 558, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 462, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_550@ECM3", 559, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 461, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_551@ECM3", 560, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 460, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_552@ECM3", 561, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 459, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_553@ECM3", 562, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 458, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_554@ECM3", 563, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 457, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_555@ECM3", 564, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 456, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_556@ECM3", 565, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 455, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_557@ECM3", 566, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 454, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_558@ECM3", 567, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 453, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_559@ECM3", 568, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 452, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_560@ECM3", 569, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 451, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_561@ECM3", 570, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 450, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_562@ECM3", 571, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 449, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_563@ECM3", 572, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 448, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_564@ECM3", 573, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 447, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_565@ECM3", 574, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 446, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_566@ECM3", 575, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 445, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_567@ECM3", 576, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 444, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_568@ECM3", 577, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 443, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_569@ECM3", 578, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 442, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_570@ECM3", 579, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 441, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_571@ECM3", 580, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 440, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_572@ECM3", 581, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 439, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_573@ECM3", 582, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 438, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_574@ECM3", 583, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 437, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_575@ECM3", 584, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 436, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_576@ECM3", 585, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 435, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_577@ECM3", 586, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 434, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_578@ECM3", 587, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 433, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_579@ECM3", 588, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 432, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_580@ECM3", 589, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 431, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_581@ECM3", 590, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 430, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_582@ECM3", 591, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 429, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_583@ECM3", 592, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 428, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_584@ECM3", 593, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 427, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_585@ECM3", 594, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 426, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_586@ECM3", 595, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 425, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_587@ECM3", 596, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 424, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_588@ECM3", 597, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 423, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_589@ECM3", 598, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 422, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_590@ECM3", 599, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 421, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_591@ECM3", 600, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 420, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_592@ECM3", 601, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 419, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_593@ECM3", 602, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 418, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_594@ECM3", 603, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 417, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_595@ECM3", 604, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 416, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_596@ECM3", 605, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 415, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_597@ECM3", 606, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 414, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_598@ECM3", 607, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 413, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_599@ECM3", 608, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 412, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_600@ECM3", 609, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 411, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_601@ECM3", 610, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 410, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_602@ECM3", 611, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 409, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_603@ECM3", 612, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 408, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_604@ECM3", 613, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 407, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_605@ECM3", 614, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 406, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_606@ECM3", 615, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 405, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_607@ECM3", 616, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 404, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_608@ECM3", 617, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 403, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_609@ECM3", 618, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 402, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_610@ECM3", 619, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 401, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_611@ECM3", 620, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 400, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_612@ECM3", 621, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 399, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_613@ECM3", 622, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 398, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_614@ECM3", 623, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 397, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_615@ECM3", 624, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 396, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_616@ECM3", 625, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 395, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_617@ECM3", 626, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 394, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_618@ECM3", 627, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 393, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_619@ECM3", 628, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 392, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_620@ECM3", 629, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 391, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_621@ECM3", 630, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 390, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_622@ECM3", 631, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 389, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_623@ECM3", 632, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 388, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_624@ECM3", 633, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 387, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_625@ECM3", 634, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 386, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_626@ECM3", 635, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 385, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_627@ECM3", 636, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 384, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_628@ECM3", 637, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 383, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_629@ECM3", 638, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 382, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_630@ECM3", 639, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 381, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_631@ECM3", 640, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 380, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_632@ECM3", 641, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 379, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_633@ECM3", 642, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 378, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_634@ECM3", 643, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 377, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_635@ECM3", 644, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 376, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_636@ECM3", 645, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 375, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_637@ECM3", 646, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 374, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_638@ECM3", 647, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 373, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_639@ECM3", 648, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 372, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_640@ECM3", 649, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 371, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_641@ECM3", 650, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 370, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_642@ECM3", 651, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 369, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_643@ECM3", 652, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 368, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_644@ECM3", 653, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 367, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_645@ECM3", 654, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 366, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_646@ECM3", 655, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 365, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_647@ECM3", 656, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 364, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_648@ECM3", 657, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 363, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_649@ECM3", 658, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 362, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_650@ECM3", 659, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 361, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_651@ECM3", 660, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 360, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_652@ECM3", 661, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 359, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_653@ECM3", 662, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 358, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_654@ECM3", 663, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 357, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_655@ECM3", 664, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 356, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_656@ECM3", 665, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 355, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_657@ECM3", 666, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 354, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_658@ECM3", 667, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 353, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_659@ECM3", 668, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 352, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_660@ECM3", 669, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 351, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_661@ECM3", 670, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 350, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_662@ECM3", 671, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 349, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_663@ECM3", 672, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 348, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_664@ECM3", 673, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 347, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_665@ECM3", 674, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 346, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_666@ECM3", 675, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 345, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_667@ECM3", 676, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 344, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_668@ECM3", 677, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 343, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_669@ECM3", 678, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 342, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_670@ECM3", 679, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 341, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_671@ECM3", 680, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 340, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_672@ECM3", 681, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 339, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_673@ECM3", 682, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 338, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_674@ECM3", 683, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 337, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_675@ECM3", 684, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 336, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_676@ECM3", 685, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 335, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_677@ECM3", 686, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 334, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_678@ECM3", 687, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 333, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_679@ECM3", 688, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 332, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_680@ECM3", 689, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 331, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_681@ECM3", 690, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 330, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_682@ECM3", 691, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 329, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_683@ECM3", 692, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 328, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_684@ECM3", 693, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 327, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_685@ECM3", 694, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 326, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_686@ECM3", 695, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 325, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_687@ECM3", 696, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 324, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_688@ECM3", 697, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 323, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_689@ECM3", 698, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 322, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_690@ECM3", 699, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 321, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_691@ECM3", 700, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 320, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_692@ECM3", 701, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 319, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_693@ECM3", 702, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 318, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_694@ECM3", 703, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 317, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_695@ECM3", 704, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 316, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_696@ECM3", 705, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 315, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_697@ECM3", 706, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 314, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_698@ECM3", 707, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 313, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_699@ECM3", 708, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 312, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_700@ECM3", 709, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 311, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_701@ECM3", 710, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 310, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_702@ECM3", 711, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 309, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_703@ECM3", 712, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 308, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_704@ECM3", 713, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 307, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_705@ECM3", 714, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 306, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_706@ECM3", 715, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 305, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_707@ECM3", 716, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 304, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_708@ECM3", 717, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 303, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_709@ECM3", 718, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 302, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_710@ECM3", 719, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 301, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_711@ECM3", 720, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 300, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_712@ECM3", 721, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 299, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_713@ECM3", 722, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 298, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_714@ECM3", 723, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 297, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_715@ECM3", 724, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 296, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_716@ECM3", 725, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 295, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_717@ECM3", 726, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 294, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_718@ECM3", 727, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 293, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_719@ECM3", 728, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 292, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_720@ECM3", 729, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 291, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_721@ECM3", 730, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 290, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_722@ECM3", 731, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 289, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_723@ECM3", 732, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 288, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_724@ECM3", 733, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 287, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_725@ECM3", 734, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 286, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_726@ECM3", 735, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 285, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_727@ECM3", 736, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 284, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_728@ECM3", 737, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 283, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_729@ECM3", 738, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 282, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_730@ECM3", 739, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 281, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_731@ECM3", 740, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 280, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_732@ECM3", 741, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 279, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_733@ECM3", 742, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 278, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_734@ECM3", 743, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 277, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_735@ECM3", 744, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 276, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_736@ECM3", 745, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 275, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_737@ECM3", 746, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 274, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_738@ECM3", 747, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 273, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_739@ECM3", 748, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 272, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_740@ECM3", 749, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 271, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_741@ECM3", 750, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 270, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_742@ECM3", 751, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 269, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_743@ECM3", 752, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 268, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_744@ECM3", 753, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 267, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_745@ECM3", 754, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 266, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_746@ECM3", 755, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 265, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_747@ECM3", 756, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 264, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_748@ECM3", 757, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 263, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_749@ECM3", 758, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 262, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_750@ECM3", 759, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 261, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_751@ECM3", 760, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 260, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_752@ECM3", 761, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 259, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_753@ECM3", 762, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 258, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_754@ECM3", 763, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 257, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_755@ECM3", 764, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 256, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_756@ECM3", 765, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 255, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_757@ECM3", 766, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 254, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_758@ECM3", 767, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 253, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_759@ECM3", 768, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 252, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_760@ECM3", 769, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 251, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_761@ECM3", 770, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 250, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_762@ECM3", 771, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 249, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_763@ECM3", 772, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 248, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_764@ECM3", 773, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 247, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_765@ECM3", 774, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 246, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_766@ECM3", 775, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 245, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_767@ECM3", 776, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 244, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_768@ECM3", 777, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 243, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_769@ECM3", 778, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 242, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_770@ECM3", 779, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 241, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_771@ECM3", 780, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 240, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_772@ECM3", 781, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 239, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_773@ECM3", 782, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 238, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_774@ECM3", 783, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 237, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_775@ECM3", 784, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 236, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_776@ECM3", 785, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 235, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_777@ECM3", 786, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 234, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_778@ECM3", 787, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 233, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_779@ECM3", 788, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 232, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_780@ECM3", 789, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 231, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_781@ECM3", 790, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 230, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_782@ECM3", 791, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 229, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_783@ECM3", 792, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 228, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_784@ECM3", 793, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 227, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_785@ECM3", 794, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 226, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_786@ECM3", 795, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 225, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_787@ECM3", 796, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 224, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_788@ECM3", 797, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 223, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_789@ECM3", 798, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 222, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_790@ECM3", 799, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 221, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_791@ECM3", 800, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 220, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_792@ECM3", 801, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 219, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_793@ECM3", 802, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 218, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_794@ECM3", 803, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 217, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_795@ECM3", 804, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 216, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_796@ECM3", 805, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 215, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_797@ECM3", 806, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 214, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_798@ECM3", 807, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 213, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_799@ECM3", 808, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 212, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_800@ECM3", 809, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 211, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_801@ECM3", 810, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 210, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_802@ECM3", 811, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 209, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_803@ECM3", 812, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 208, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_804@ECM3", 813, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 207, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_805@ECM3", 814, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 206, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_806@ECM3", 815, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 205, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_807@ECM3", 816, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 204, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_808@ECM3", 817, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 203, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_809@ECM3", 818, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 202, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_810@ECM3", 819, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 201, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_811@ECM3", 820, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 200, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_812@ECM3", 821, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 199, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_813@ECM3", 822, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 198, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_814@ECM3", 823, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 197, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_815@ECM3", 824, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 196, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_816@ECM3", 825, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 195, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_817@ECM3", 826, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 194, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_818@ECM3", 827, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 193, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_819@ECM3", 828, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 192, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_820@ECM3", 829, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 191, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_821@ECM3", 830, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 190, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_822@ECM3", 831, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 189, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_823@ECM3", 832, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 188, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_824@ECM3", 833, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 187, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_825@ECM3", 834, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 186, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_826@ECM3", 835, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 185, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_827@ECM3", 836, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 184, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_828@ECM3", 837, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 183, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_829@ECM3", 838, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 182, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_830@ECM3", 839, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 181, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_831@ECM3", 840, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 180, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_832@ECM3", 841, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 179, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_833@ECM3", 842, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 178, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_834@ECM3", 843, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 177, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_835@ECM3", 844, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 176, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_836@ECM3", 845, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 175, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_837@ECM3", 846, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 174, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_838@ECM3", 847, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 173, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_839@ECM3", 848, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 172, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_840@ECM3", 849, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 171, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_841@ECM3", 850, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 170, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_842@ECM3", 851, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 169, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_843@ECM3", 852, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 168, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_844@ECM3", 853, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 167, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_845@ECM3", 854, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 166, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_846@ECM3", 855, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 165, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_847@ECM3", 856, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 164, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_848@ECM3", 857, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 163, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_849@ECM3", 858, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 162, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_850@ECM3", 859, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 161, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_851@ECM3", 860, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 160, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_852@ECM3", 861, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 159, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_853@ECM3", 862, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 158, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_854@ECM3", 863, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 157, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_855@ECM3", 864, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 156, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_856@ECM3", 865, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 155, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_857@ECM3", 866, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 154, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_858@ECM3", 867, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 153, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_859@ECM3", 868, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 152, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_860@ECM3", 869, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 151, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_861@ECM3", 870, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 150, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_862@ECM3", 871, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 149, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_863@ECM3", 872, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 148, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_864@ECM3", 873, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 147, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_865@ECM3", 874, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 146, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_866@ECM3", 875, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 145, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_867@ECM3", 876, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 144, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_868@ECM3", 877, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 143, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_869@ECM3", 878, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 142, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_870@ECM3", 879, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 141, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_871@ECM3", 880, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 140, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_872@ECM3", 881, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 139, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_873@ECM3", 882, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 138, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_874@ECM3", 883, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 137, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_875@ECM3", 884, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 136, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_876@ECM3", 885, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 135, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_877@ECM3", 886, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 134, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_878@ECM3", 887, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 133, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_879@ECM3", 888, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 132, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_880@ECM3", 889, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 131, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_881@ECM3", 890, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 130, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_882@ECM3", 891, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 129, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_883@ECM3", 892, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 128, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_884@ECM3", 893, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 127, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_885@ECM3", 894, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 126, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_886@ECM3", 895, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 125, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_887@ECM3", 896, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 124, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_888@ECM3", 897, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 123, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_889@ECM3", 898, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 122, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_890@ECM3", 899, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 121, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_891@ECM3", 900, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 120, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_892@ECM3", 901, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 119, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_893@ECM3", 902, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 118, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_894@ECM3", 903, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 117, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_895@ECM3", 904, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 116, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_896@ECM3", 905, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 115, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_897@ECM3", 906, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 114, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_898@ECM3", 907, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 113, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_899@ECM3", 908, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 112, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_900@ECM3", 909, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 111, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_901@ECM3", 910, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 110, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_902@ECM3", 911, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 109, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_903@ECM3", 912, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 108, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_904@ECM3", 913, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 107, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_905@ECM3", 914, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 106, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_906@ECM3", 915, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 105, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_907@ECM3", 916, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 104, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_908@ECM3", 917, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 103, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_909@ECM3", 918, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 102, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_910@ECM3", 919, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 101, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_911@ECM3", 920, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 100, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_912@ECM3", 921, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 99, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_913@ECM3", 922, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 98, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_914@ECM3", 923, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 97, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_915@ECM3", 924, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 96, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_916@ECM3", 925, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 95, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_917@ECM3", 926, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 94, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_918@ECM3", 927, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 93, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_919@ECM3", 928, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 92, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_920@ECM3", 929, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 91, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_921@ECM3", 930, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 90, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_922@ECM3", 931, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 89, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_923@ECM3", 932, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 88, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_924@ECM3", 933, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 87, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_925@ECM3", 934, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 86, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_926@ECM3", 935, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 85, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_927@ECM3", 936, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 84, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_928@ECM3", 937, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 83, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_929@ECM3", 938, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 82, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_930@ECM3", 939, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 81, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_931@ECM3", 940, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 80, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_932@ECM3", 941, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 79, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_933@ECM3", 942, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 78, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_934@ECM3", 943, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 77, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_935@ECM3", 944, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 76, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_936@ECM3", 945, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 75, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_937@ECM3", 946, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 74, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_938@ECM3", 947, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 73, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_939@ECM3", 948, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 72, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_940@ECM3", 949, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 71, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_941@ECM3", 950, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 70, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_942@ECM3", 951, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 69, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_943@ECM3", 952, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 68, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_944@ECM3", 953, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 67, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_945@ECM3", 954, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 66, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_946@ECM3", 955, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 65, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_947@ECM3", 956, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 64, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_948@ECM3", 957, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 63, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_949@ECM3", 958, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 62, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_950@ECM3", 959, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 61, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_951@ECM3", 960, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 60, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_952@ECM3", 961, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 59, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_953@ECM3", 962, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 58, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_954@ECM3", 963, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 57, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_955@ECM3", 964, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 56, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_956@ECM3", 965, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 55, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_957@ECM3", 966, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 54, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_958@ECM3", 967, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 53, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_959@ECM3", 968, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 52, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_960@ECM3", 969, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 51, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_961@ECM3", 970, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 50, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_962@ECM3", 971, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 49, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_963@ECM3", 972, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 48, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_964@ECM3", 973, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 47, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_965@ECM3", 974, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 46, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_966@ECM3", 975, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 45, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_967@ECM3", 976, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 44, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_968@ECM3", 977, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 43, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_969@ECM3", 978, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 42, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_970@ECM3", 979, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 41, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_971@ECM3", 980, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 40, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_972@ECM3", 981, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 39, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_973@ECM3", 982, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 38, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_974@ECM3", 983, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 37, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_975@ECM3", 984, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 36, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_976@ECM3", 985, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 35, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_977@ECM3", 986, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 34, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_978@ECM3", 987, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 33, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_979@ECM3", 988, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 32, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_980@ECM3", 989, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 31, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_981@ECM3", 990, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 30, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_982@ECM3", 991, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 29, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_983@ECM3", 992, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 28, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_984@ECM3", 993, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 27, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_985@ECM3", 994, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 26, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_986@ECM3", 995, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 25, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_987@ECM3", 996, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 24, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_988@ECM3", 997, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 23, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_989@ECM3", 998, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 22, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_990@ECM3", 999, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 21, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_991@ECM3", 1000, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 20, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_992@ECM3", 1001, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 19, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_993@ECM3", 1002, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 18, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_994@ECM3", 1003, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 17, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_995@ECM3", 1004, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 16, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_996@ECM3", 1005, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 15, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_997@ECM3", 1006, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 14, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_998@ECM3", 1007, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 13, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "lp_consumer_999@ECM3", 1008, 20000, 20000, 20000, 0, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 0, 59, 12, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "consumer_hp_supplier_00@ECM3", 1009, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 3, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "consumer_lp_supplier_00@ECM3", 1010, 20000, 20000, 20000, 2500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 20000, 1, 59, 2, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "ACE_ES_Dispatch_Queue-25000.us", 1011, 0, 0, 0, 250000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1021, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "ACE_ES_Dispatch_Queue-50000.us", 1012, 0, 0, 0, 500000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1019, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "ACE_ES_Dispatch_Queue-100000.us", 1013, 0, 0, 0, 1000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1017, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "ACE_ES_Dispatch_Queue-200000.us", 1014, 0, 0, 0, 2000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 1015, 0, (RtecScheduler::Info_Type_t) 0 , (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED }, +{ "ACE_ES_Dispatch_Queue-1000000.us", 1015, 0, 0, 0, 10000000, (RtecScheduler::Criticality_t) 4, (RtecScheduler::Importance_t) 0, 0, 1, 59, 0, 0, (RtecScheduler::Info_Type_t) 0, (RtecScheduler::RT_Info_Enabled_Type_t) RtecScheduler::RT_INFO_ENABLED } }; static int runtime_infos_3_size = sizeof(runtime_infos_3)/sizeof(runtime_infos_3[0]); diff --git a/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp b/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp index 63ca69d88b1..c6223095999 100644 --- a/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp +++ b/TAO/orbsvcs/tests/Event/Basic/Schedule.cpp @@ -85,10 +85,12 @@ EC_Schedule::execute_test (ACE_ENV_SINGLE_ARG_DECL) "EC_Schedule (%P|%t) computing schedule\n")); RtecScheduler::RT_Info_Set_var infos; + RtecScheduler::Dependency_Set_var deps; RtecScheduler::Config_Info_Set_var configs; RtecScheduler::Scheduling_Anomaly_Set_var anomalies; this->scheduler_->compute_scheduling (min_priority, max_priority, infos.out (), + deps.out (), configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); @@ -99,6 +101,7 @@ EC_Schedule::execute_test (ACE_ENV_SINGLE_ARG_DECL) "EC_Schedule (%P|%t) schedule prepared\n")); ACE_Scheduler_Factory::dump_schedule (infos.in (), + deps.in (), configs.in (), anomalies.in ()); diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp index 5bdb77c54a9..21fb433db6c 100644 --- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp +++ b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp @@ -73,7 +73,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 20 Hz low criticality supplier { "low_20_S", // entry point @@ -89,7 +90,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 10 Hz high criticality supplier { "high_10_S", // entry point @@ -105,7 +107,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 10 Hz low criticality supplier { "low_10_S", // entry point @@ -121,7 +124,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 5 Hz high criticality supplier { "high_05_S", // entry point @@ -137,7 +141,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 5 Hz low criticality supplier { "low_05_S", // entry point @@ -153,7 +158,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler:: RT_INFO_ENABLED }, // 1 Hz high criticality supplier (declares a rate but no threads) { "high_01_S", // entry point @@ -169,7 +175,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 1 Hz low criticality supplier (remote dependant: scheduler should warn) { "low_01_S", // entry point @@ -185,7 +192,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 20 Hz high criticality consumer { "high_20_C", // entry point @@ -201,7 +209,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 20 Hz low criticality consumer { "low_20_C", // entry point @@ -217,7 +226,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 10 Hz high criticality consumer { "high_10_C", // entry point @@ -233,7 +243,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 10 Hz low criticality consumer { "low_10_C", // entry point @@ -249,7 +260,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 5 Hz high criticality consumer { "high_05_C", // entry point @@ -265,7 +277,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 5 Hz low criticality consumer { "low_05_C", // entry point @@ -281,7 +294,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 1 Hz high criticality consumer { "high_01_C", // entry point @@ -297,7 +311,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED }, // 1 Hz low criticality consumer { "low_01_C", // entry point @@ -313,7 +328,8 @@ main (int argc, char *argv[]) 0, // OS priority 0, // Preemption subpriority 0, // Preemption priority - RtecScheduler::OPERATION // info type + RtecScheduler::OPERATION, // info type + RtecScheduler::RT_INFO_ENABLED } }; @@ -403,6 +419,7 @@ main (int argc, char *argv[]) } RtecScheduler::RT_Info_Set_var infos; + RtecScheduler::Dependency_Set_var deps; RtecScheduler::Config_Info_Set_var configs; RtecScheduler::Scheduling_Anomaly_Set_var anomalies; @@ -418,6 +435,7 @@ main (int argc, char *argv[]) // not define instances of _out types. RtecScheduler::RT_Info_Set_out infos_out (infos); + RtecScheduler::Dependency_Set_out deps_out (deps); RtecScheduler::Config_Info_Set_out configs_out (configs); RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies); ACE_Scheduler_Factory::server ()->compute_scheduling @@ -425,7 +443,7 @@ main (int argc, char *argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos_out, configs_out, anomalies_out + infos_out, deps_out, configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check #else /* ! __SUNPRO_CC */ ACE_Scheduler_Factory::server ()->compute_scheduling @@ -433,13 +451,14 @@ main (int argc, char *argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos.out (), configs.out (), anomalies.out () + infos.out (), deps.out (), configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check #endif /* ! __SUNPRO_CC */ ACE_TRY_CHECK; ACE_Scheduler_Factory::dump_schedule (infos.in (), + deps.in (), configs.in (), anomalies.in (), "Sched_Conf_Runtime.h", diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp index 690890674b2..fe655323b89 100644 --- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp +++ b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.cpp @@ -354,6 +354,7 @@ main (int argc, char *argv[]) ACE_TRY_CHECK; RtecScheduler::RT_Info_Set_var infos; + RtecScheduler::Dependency_Set_var deps; RtecScheduler::Config_Info_Set_var configs; RtecScheduler::Scheduling_Anomaly_Set_var anomalies; @@ -369,6 +370,7 @@ main (int argc, char *argv[]) // not define instances of _out types. RtecScheduler::RT_Info_Set_out infos_out (infos); + RtecScheduler::Dependency_Set_out deps_out (deps); RtecScheduler::Config_Info_Set_out configs_out (configs); RtecScheduler::Scheduling_Anomaly_Set_out anomalies_out (anomalies); ACE_Scheduler_Factory::server ()->compute_scheduling @@ -376,19 +378,22 @@ main (int argc, char *argv[]) ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos_out, configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check + infos_out, deps_out, + configs_out, anomalies_out ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check #else /* ! __SUNPRO_CC */ ACE_Scheduler_Factory::server ()->compute_scheduling (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD), - infos.out (), configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check + infos.out (), deps.out (), + configs.out (), anomalies.out () ACE_ENV_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check #endif /* ! __SUNPRO_CC */ ACE_TRY_CHECK; ACE_Scheduler_Factory::dump_schedule (infos.in (), + deps.in (), configs.in (), anomalies.in (), "Sched_Conf_Anomalies_Runtime.h", |