ROSS
Functions | Variables
tw-sched.c File Reference
#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
 

Function Documentation

static void reset_bitfields ( tw_event revent)
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().

Here is the caller graph for this function:

static void tw_sched_batch ( tw_pe me)
static
static void tw_sched_batch_realtime ( tw_pe me)
static
static void tw_sched_cancel_q ( tw_pe me)
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().

Here is the call graph for this function:

Here is the caller graph for this function:

static void tw_sched_event_q ( tw_pe me)
static
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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

void tw_scheduler_optimistic ( tw_pe me)
void tw_scheduler_optimistic_debug ( tw_pe me)
void tw_scheduler_optimistic_realtime ( tw_pe me)
void tw_scheduler_sequential ( tw_pe me)

Variable Documentation

double g_tw_rollback_time = 0.000000001

Definition at line 731 of file tw-sched.c.

Referenced by tw_scheduler_optimistic_debug().