#include <ross.h>
Go to the source code of this file.
Functions | |
static void | reset_bitfields (tw_event *revent) |
Reset the event bitfield prior to entering the event handler post-reverse - reset the bitfield so that a potential re-running of the event is presented with a consistent bitfield state NOTE: the size checks are to better support the experimental reverse computation compiler, which can use a larger bitfield. Courtesy of John P Jenkins. More... | |
static void | tw_sched_event_q (tw_pe *me) |
static void | tw_sched_cancel_q (tw_pe *me) |
static void | tw_sched_batch (tw_pe *me) |
static void | tw_sched_batch_realtime (tw_pe *me) |
void | tw_sched_init (tw_pe *me) |
void | tw_scheduler_sequential (tw_pe *me) |
void | tw_scheduler_conservative (tw_pe *me) |
void | tw_scheduler_optimistic (tw_pe *me) |
void | tw_scheduler_optimistic_realtime (tw_pe *me) |
void | tw_scheduler_optimistic_debug (tw_pe *me) |
Variables | |
double | g_tw_rollback_time = 0.000000001 |
|
inlinestatic |
Definition at line 11 of file tw-sched.c.
References tw_event::cv.
Referenced by tw_sched_batch(), tw_sched_batch_realtime(), tw_scheduler_conservative(), tw_scheduler_optimistic_debug(), and tw_scheduler_sequential().
|
static |
Definition at line 139 of file tw-sched.c.
References ALL_STATS, tw_pe::cev_abort, tw_event::critical_path, tw_lp::critical_path, tw_pe::cur_event, tw_lp::cur_state, tw_event::cv, tw_event::dest_lp, tw_lptype::event, tw_pe::free_q, FULL_TRACE, g_st_engine_stats, g_st_ev_trace, g_st_model_stats, g_st_rt_interval, g_st_rt_samp_start_cycles, g_st_rt_sampling, g_tw_clock_rate, g_tw_gvt_threshold, g_tw_mblock, tw_pe::GVT, tw_lp::kp, tw_kp::kp_stats, tw_kp::last_time, tw_lp::lp_stats, tw_event::owner, tw_kp::pevent_q, tw_pe::pq, tw_event::recv_ts, reset_bitfields(), tw_lptype::revent, ROSS_MAX, RT_COL, RT_STATS, tw_statistics::s_event_abort, tw_statistics::s_event_process, tw_statistics::s_nevent_abort, st_kp_stats::s_nevent_abort, st_lp_stats::s_nevent_abort, st_kp_stats::s_nevent_processed, st_lp_stats::s_nevent_processed, tw_kp::s_nevent_processed, tw_statistics::s_pe_event_ties, tw_statistics::s_pq, tw_eventq::size, st_collect_engine_data(), st_collect_event_data(), st_collect_model_data(), tw_event::state, tw_pe::stats, tw_lp::suspend_flag, tw_clock_read(), tw_error(), tw_event_data(), tw_event_rollback(), tw_eventq_peek(), tw_eventq_unshift(), tw_gvt_force_update(), TW_kp_pevent_q, TW_LOC, tw_pq_dequeue(), tw_pq_enqueue(), tw_pq_minimum(), TW_STIME_CMP, and tw_lp::type.
Referenced by tw_scheduler_optimistic().
|
static |
Definition at line 273 of file tw-sched.c.
References ALL_STATS, tw_pe::cev_abort, tw_event::critical_path, tw_lp::critical_path, tw_pe::cur_event, tw_lp::cur_state, tw_event::cv, tw_event::dest_lp, tw_lptype::event, tw_pe::free_q, FULL_TRACE, g_st_engine_stats, g_st_ev_trace, g_st_model_stats, g_st_rt_interval, g_st_rt_samp_start_cycles, g_st_rt_sampling, g_tw_clock_rate, g_tw_gvt_interval_start_cycles, g_tw_gvt_realtime_interval, g_tw_gvt_threshold, g_tw_mblock, tw_pe::GVT, tw_lp::kp, tw_kp::kp_stats, tw_kp::last_time, tw_lp::lp_stats, tw_event::owner, tw_kp::pevent_q, tw_pe::pq, tw_event::recv_ts, reset_bitfields(), tw_lptype::revent, ROSS_MAX, RT_COL, RT_STATS, tw_statistics::s_event_abort, tw_statistics::s_event_process, tw_statistics::s_nevent_abort, st_kp_stats::s_nevent_abort, st_lp_stats::s_nevent_abort, st_kp_stats::s_nevent_processed, st_lp_stats::s_nevent_processed, tw_kp::s_nevent_processed, tw_statistics::s_pe_event_ties, tw_statistics::s_pq, tw_eventq::size, st_collect_engine_data(), st_collect_event_data(), st_collect_model_data(), tw_event::state, tw_pe::stats, tw_lp::suspend_flag, tw_clock_read(), tw_error(), tw_event_data(), tw_event_rollback(), tw_eventq_peek(), tw_eventq_unshift(), tw_gvt_force_update_realtime(), TW_kp_pevent_q, TW_LOC, tw_pq_dequeue(), tw_pq_enqueue(), tw_pq_minimum(), TW_STIME_CMP, and tw_lp::type.
Referenced by tw_scheduler_optimistic_realtime().
|
static |
OPT: need to link events into canq in reverse order so that when we rollback the 1st event, we should not need to do any further rollbacks.
Definition at line 74 of file tw-sched.c.
References tw_event::cancel_next, tw_event::cancel_q, tw_pe::cancel_q, tw_pe::event_q, tw_event::owner, tw_pe::pq, tw_statistics::s_cancel_q, tw_statistics::s_pq, tw_event::state, tw_pe::stats, tw_clock_read(), tw_error(), tw_event_free(), tw_eventq_delete_any(), TW_kp_pevent_q, tw_kp_rollback_event(), TW_LOC, TW_pe_anti_msg, TW_pe_event_q, TW_pe_free_q, TW_pe_pq, and tw_pq_delete_any().
Referenced by tw_scheduler_optimistic(), and tw_scheduler_optimistic_realtime().
|
static |
Get all events out of my event queue and spin them out into the priority queue so they can be processed in time stamp order.
Definition at line 21 of file tw-sched.c.
References tw_event::cancel_q, tw_event::dest_lp, tw_pe::event_q, g_st_ev_trace, g_tw_clock_rate, tw_lp::kp, tw_kp::last_time, tw_event::next, tw_event::owner, tw_pe::pq, tw_event::prev, RB_TRACE, tw_event::recv_ts, tw_statistics::s_pq, tw_statistics::s_rollback, tw_eventq::size, st_collect_event_data(), tw_event::state, tw_pe::stats, tw_clock_read(), tw_error(), tw_eventq_pop_list(), tw_kp_rollback_to(), TW_LOC, TW_pe_anti_msg, TW_pe_event_q, TW_pe_free_q, tw_pq_enqueue(), and TW_STIME_CMP.
Referenced by tw_scheduler_conservative(), tw_scheduler_optimistic(), and tw_scheduler_optimistic_realtime().
void tw_sched_init | ( | tw_pe * | me | ) |
Definition at line 404 of file tw-sched.c.
References g_tw_sim_started, io_load_events(), tw_petype::post_lp_init, tw_petype::pre_lp_init, tw_pe::stats, tw_clock_init(), tw_clock_read(), tw_init_kps(), tw_init_lps(), tw_net_barrier(), tw_net_read(), tw_nnodes(), tw_pre_run_lps(), and tw_pe::type.
Referenced by tw_run().
void tw_scheduler_conservative | ( | tw_pe * | me | ) |
Definition at line 514 of file tw-sched.c.
References ALL_STATS, tw_pe::cev_abort, tw_lptype::commit, tw_event::critical_path, tw_lp::critical_path, tw_pe::cur_event, tw_lp::cur_state, tw_event::cv, tw_event::dest_lp, tw_pe::end_time, tw_lptype::event, tw_petype::final, tw_pe::free_q, FULL_TRACE, g_st_engine_stats, g_st_ev_trace, g_st_model_stats, g_st_rt_interval, g_st_rt_samp_start_cycles, g_st_rt_sampling, g_tw_clock_rate, g_tw_gvt_threshold, g_tw_lookahead, g_tw_masternode, g_tw_mblock, g_tw_mynode, g_tw_ts_end, tw_lp::gid, tw_pe::GVT, tw_pe::id, tw_lp::kp, tw_kp::kp_stats, tw_kp::last_time, tw_lp::lp_stats, tw_lp::pe, tw_pe::pq, tw_event::recv_ts, reset_bitfields(), ROSS_MAX, RT_COL, RT_STATS, tw_statistics::s_event_process, tw_statistics::s_net_read, st_kp_stats::s_nevent_processed, st_lp_stats::s_nevent_processed, tw_kp::s_nevent_processed, tw_statistics::s_pe_event_ties, tw_statistics::s_pq, tw_statistics::s_total, tw_event::send_lp, tw_event::send_pe, tw_eventq::size, st_collect_engine_data(), st_collect_event_data(), st_collect_model_data(), st_inst_finalize(), tw_pe::start_time, tw_pe::stats, tw_clock_read(), tw_error(), tw_event_data(), tw_event_free(), tw_gvt_force_update(), tw_gvt_step1(), tw_gvt_step2(), TW_LOC, tw_net_barrier(), tw_net_read(), tw_nnodes(), tw_pq_dequeue(), tw_pq_minimum(), tw_sched_event_q(), tw_stats(), TW_STIME_CMP, TW_STIME_DBL, tw_wall_now(), tw_lp::type, and tw_pe::type.
Referenced by tw_run().
void tw_scheduler_optimistic | ( | tw_pe * | me | ) |
Definition at line 634 of file tw-sched.c.
References tw_pe::end_time, tw_petype::final, g_tw_masternode, g_tw_mynode, g_tw_ts_end, tw_pe::GVT, tw_statistics::s_net_read, tw_statistics::s_total, st_inst_finalize(), tw_pe::start_time, tw_pe::stats, tw_clock_read(), tw_gvt_step1(), tw_gvt_step2(), tw_net_barrier(), tw_net_read(), tw_nnodes(), tw_sched_batch(), tw_sched_cancel_q(), tw_sched_event_q(), tw_stats(), TW_STIME_DBL, tw_wall_now(), and tw_pe::type.
Referenced by tw_run().
void tw_scheduler_optimistic_debug | ( | tw_pe * | me | ) |
Definition at line 733 of file tw-sched.c.
References tw_event::critical_path, tw_lp::critical_path, tw_pe::cur_event, tw_lp::cur_state, tw_event::cv, tw_event::dest_lp, tw_pe::end_time, tw_lptype::event, tw_petype::final, tw_pe::free_q, g_tw_kp, g_tw_nkp, g_tw_rollback_time, tw_lp::kp, tw_kp::last_time, tw_event::owner, tw_kp::pevent_q, tw_pe::pq, tw_event::recv_ts, reset_bitfields(), ROSS_MAX, tw_kp::s_nevent_processed, tw_eventq::size, tw_pe::start_time, tw_event::state, tw_error(), tw_event_data(), tw_eventq_unshift(), TW_kp_pevent_q, tw_kp_rollback_to(), TW_LOC, tw_nnodes(), tw_pq_dequeue(), tw_stats(), TW_STIME_CRT, tw_wall_now(), tw_lp::type, and tw_pe::type.
Referenced by tw_run().
void tw_scheduler_optimistic_realtime | ( | tw_pe * | me | ) |
Definition at line 680 of file tw-sched.c.
References tw_pe::end_time, tw_petype::final, g_tw_clock_rate, g_tw_gvt_interval, g_tw_gvt_interval_start_cycles, g_tw_gvt_realtime_interval, g_tw_masternode, g_tw_mynode, g_tw_ts_end, tw_pe::GVT, tw_statistics::s_net_read, tw_statistics::s_total, st_inst_finalize(), tw_pe::start_time, tw_pe::stats, tw_clock_read(), tw_gvt_step1_realtime(), tw_gvt_step2(), tw_net_barrier(), tw_net_read(), tw_nnodes(), tw_sched_batch_realtime(), tw_sched_cancel_q(), tw_sched_event_q(), tw_stats(), TW_STIME_DBL, tw_wall_now(), and tw_pe::type.
Referenced by tw_run().
void tw_scheduler_sequential | ( | tw_pe * | me | ) |
Definition at line 445 of file tw-sched.c.
References ALL_STATS, tw_pe::cev_abort, tw_lptype::commit, tw_event::critical_path, tw_lp::critical_path, tw_pe::cur_event, tw_lp::cur_state, tw_event::cv, tw_event::dest_lp, tw_pe::end_time, tw_lptype::event, tw_petype::final, FULL_TRACE, g_st_ev_trace, g_st_model_stats, g_st_rt_interval, g_st_rt_samp_start_cycles, g_st_rt_sampling, g_tw_clock_rate, g_tw_masternode, g_tw_mynode, g_tw_ts_end, gvt_print(), tw_lp::kp, tw_kp::kp_stats, tw_kp::last_time, tw_lp::lp_stats, percent_complete, tw_pe::pq, tw_event::recv_ts, reset_bitfields(), ROSS_MAX, RT_STATS, st_kp_stats::s_nevent_processed, st_lp_stats::s_nevent_processed, tw_kp::s_nevent_processed, tw_statistics::s_pe_event_ties, tw_statistics::s_total, st_collect_event_data(), st_collect_model_data(), tw_pe::start_time, tw_pe::stats, tw_clock_read(), tw_error(), tw_event_data(), tw_event_free(), TW_LOC, tw_nnodes(), tw_pq_dequeue(), tw_pq_minimum(), tw_stats(), TW_STIME_CMP, TW_STIME_CRT, TW_STIME_DBL, tw_wall_now(), tw_lp::type, and tw_pe::type.
Referenced by tw_run().
double g_tw_rollback_time = 0.000000001 |
Definition at line 731 of file tw-sched.c.
Referenced by tw_scheduler_optimistic_debug().