RRES server main structure. More...
#include <rres_server.h>
Data Structures | |
struct | rres_stat |
Data Fields | |
qres_sid_t | id |
Server identifier. | |
kal_time_t | period |
Server period. | |
qres_time_t | period_us |
Server period (microseconds). | |
kal_time_t | max_budget |
Maximum budget. | |
qres_time_t | max_budget_us |
Maximum budget (microseconds). | |
kal_time_t | c |
Current budget. | |
kal_time_t | deadline |
Absolute deadline. | |
qos_bw_t | U_current |
Bandwidth currently allocated to the server (U_current = MAX_BW -> 100% of bandwidth). | |
struct server_t::rres_stat | stat |
Statistics. | |
struct list_head | slist |
Used to queue into list of servers. | |
unsigned int | flags |
Bitmask of server flags. | |
rq_placeholder_t | rq_ph |
Reference to the server readyqueue insertion point for subsequent removal. | |
qos_bw_t(* | get_bandwidth )(struct server_t *srv) |
Virtual function to be called on budget recharge. | |
qos_rv(* | cleanup )(struct server_t *srv) |
Virtual destructor (does not deallocate memory for server_t structure). | |
struct list_head | ready_tasks |
Head of list of attached ready tasks (task lists). | |
struct list_head | blocked_tasks |
Head of list of attached blocked tasks (task lists). | |
kal_timer_t | reactive |
When this timer fires, the server is reactivated (put in ready queue). | |
int | forbid_reorder |
Forbids update_task_order() while iterating on task list. | |
unsigned int | weight |
Scheduling weight, currently only used by SHRUB. |
RRES server main structure.
Definition at line 26 of file rres_server.h.
struct list_head server_t::blocked_tasks |
Head of list of attached blocked tasks (task lists).
Definition at line 53 of file rres_server.h.
Referenced by rres_any_blocked_task(), rres_empty(), rres_init_server(), rres_on_task_block(), and tasklist_init().
Current budget.
This may be negative
Definition at line 32 of file rres_server.h.
Referenced by get_max_time_slice(), recharge(), recharge_reset_from_now(), rres_activate_nosched(), rres_get_curr_budget(), rres_init_server(), rres_set_budget(), rres_set_params(), rres_update_budget(), and update_budgets().
qos_rv(* server_t::cleanup)(struct server_t *srv) |
Virtual destructor (does not deallocate memory for server_t structure).
Definition at line 50 of file rres_server.h.
Referenced by qos_func_define(), rres_cleanup_server(), and rres_init_server().
Absolute deadline.
Definition at line 33 of file rres_server.h.
Referenced by recharge(), recharge_reset_from_now(), rres_activate_nosched(), rres_get_deadline(), rres_init_server(), rres_set_params(), and rres_update_budget().
unsigned int server_t::flags |
Bitmask of server flags.
Definition at line 41 of file rres_server.h.
Referenced by dispatch_task_safe(), rres_check_destroy(), rres_get_flags(), rres_init_server(), stop_task_safe(), and test_rres_init_module().
Forbids update_task_order() while iterating on task list.
Definition at line 59 of file rres_server.h.
Referenced by rres_activate_nosched(), rres_detach_all_tasks_nosched(), rres_init_server(), and rres_stop().
qos_bw_t(* server_t::get_bandwidth)(struct server_t *srv) |
Virtual function to be called on budget recharge.
Definition at line 47 of file rres_server.h.
Referenced by qos_func_define(), rres_get_bandwidth(), rres_init_server(), rres_set_budget(), and rres_set_params().
Server identifier.
Definition at line 27 of file rres_server.h.
Referenced by _rres_cleanup_server(), qres_cleanup(), ready_queue_add(), ready_queue_remove(), recharge(), rres_add(), rres_attach_task_nosched(), rres_cleanup(), rres_detach_all_tasks_nosched(), rres_detach_task_nosched(), rres_dispatch(), rres_find_by_id(), rres_get_params(), rres_get_sid(), rres_schedule(), rres_set_params(), rres_stop(), rres_update_budget(), stop_pending_timers(), test_rres_init_module(), and update_budgets().
Maximum budget.
Definition at line 30 of file rres_server.h.
Referenced by recharge(), rres_init_server(), rres_set_budget(), and rres_set_params().
Maximum budget (microseconds).
Definition at line 31 of file rres_server.h.
Referenced by _rres_get_bandwidth(), rres_activate_nosched(), rres_init_server(), rres_set_budget(), and rres_set_params().
Server period.
Definition at line 28 of file rres_server.h.
Referenced by recharge(), rres_init_server(), and rres_set_params().
Server period (microseconds).
Definition at line 29 of file rres_server.h.
Referenced by _rres_get_bandwidth(), recharge(), rres_activate_nosched(), rres_get_actual_budget(), rres_get_params(), rres_get_period(), rres_init_server(), rres_set_budget(), and rres_set_params().
When this timer fires, the server is reactivated (put in ready queue).
Definition at line 54 of file rres_server.h.
Referenced by rres_init_server(), rres_update_budget(), and stop_pending_timers().
struct list_head server_t::ready_tasks |
Head of list of attached ready tasks (task lists).
Definition at line 52 of file rres_server.h.
Referenced by rres_any_ready_task(), rres_empty(), rres_has_ready_tasks(), rres_init_server(), rres_on_task_unblock(), rres_stop(), and tasklist_init().
Reference to the server readyqueue insertion point for subsequent removal.
Definition at line 44 of file rres_server.h.
Referenced by ready_queue_remove(), and rres_init_server().
struct list_head server_t::slist |
Used to queue into list of servers.
Definition at line 39 of file rres_server.h.
Referenced by rres_add_to_srv_set(), and rres_remove_from_srv_set().
Statistics.
Referenced by recharge(), rres_get_exec_time(), rres_init_server(), and rres_update_budget().
Bandwidth currently allocated to the server (U_current = MAX_BW -> 100% of bandwidth).
Definition at line 34 of file rres_server.h.
Referenced by rres_get_current_bandwidth(), rres_init_server(), and rres_set_current_bandwidth().
unsigned int server_t::weight |
Scheduling weight, currently only used by SHRUB.
Definition at line 60 of file rres_server.h.
Referenced by rres_get_weight(), and rres_set_weight().