diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-11-11 13:10:43 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-11-11 13:10:43 -0500 |
commit | dede6a6b8ce09f48295d8ba4635480c98ef85284 (patch) | |
tree | 3bc2dcbe492d1e799076cd7060bc886b7a376219 /include/litmus | |
parent | 33cb64c787070d6b60a02ea40064d717d3b9dc07 (diff) |
improve ikglp heuristics
Diffstat (limited to 'include/litmus')
-rw-r--r-- | include/litmus/ikglp_lock.h | 4 | ||||
-rw-r--r-- | include/litmus/rt_param.h | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/litmus/ikglp_lock.h b/include/litmus/ikglp_lock.h index 0b89c8135360..9d0cd3d1904e 100644 --- a/include/litmus/ikglp_lock.h +++ b/include/litmus/ikglp_lock.h | |||
@@ -114,6 +114,7 @@ struct ikglp_queue_info | |||
114 | struct fifo_queue* q; | 114 | struct fifo_queue* q; |
115 | lt_t estimated_len; | 115 | lt_t estimated_len; |
116 | int *nr_cur_users; | 116 | int *nr_cur_users; |
117 | int *nr_aff_users; | ||
117 | }; | 118 | }; |
118 | 119 | ||
119 | struct ikglp_affinity_ops | 120 | struct ikglp_affinity_ops |
@@ -128,6 +129,8 @@ struct ikglp_affinity_ops | |||
128 | void (*notify_acquired)(struct ikglp_affinity* aff, struct fifo_queue* fq, struct task_struct* t); // replica acquired | 129 | void (*notify_acquired)(struct ikglp_affinity* aff, struct fifo_queue* fq, struct task_struct* t); // replica acquired |
129 | void (*notify_freed)(struct ikglp_affinity* aff, struct fifo_queue* fq, struct task_struct* t); // replica freed | 130 | void (*notify_freed)(struct ikglp_affinity* aff, struct fifo_queue* fq, struct task_struct* t); // replica freed |
130 | int (*replica_to_resource)(struct ikglp_affinity* aff, struct fifo_queue* fq); // convert a replica # to a GPU (includes offsets and simult user folding) | 131 | int (*replica_to_resource)(struct ikglp_affinity* aff, struct fifo_queue* fq); // convert a replica # to a GPU (includes offsets and simult user folding) |
132 | |||
133 | int (*notify_exit)(struct ikglp_affinity* aff, struct task_struct* t); | ||
131 | }; | 134 | }; |
132 | 135 | ||
133 | struct ikglp_affinity | 136 | struct ikglp_affinity |
@@ -136,6 +139,7 @@ struct ikglp_affinity | |||
136 | struct ikglp_affinity_ops *ops; | 139 | struct ikglp_affinity_ops *ops; |
137 | struct ikglp_queue_info *q_info; | 140 | struct ikglp_queue_info *q_info; |
138 | int *nr_cur_users_on_rsrc; | 141 | int *nr_cur_users_on_rsrc; |
142 | int *nr_aff_on_rsrc; | ||
139 | int offset; | 143 | int offset; |
140 | int nr_simult; | 144 | int nr_simult; |
141 | int nr_rsrc; | 145 | int nr_rsrc; |
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h index 44f85a366574..cb7c3ac64339 100644 --- a/include/litmus/rt_param.h +++ b/include/litmus/rt_param.h | |||
@@ -188,6 +188,8 @@ typedef struct feedback_est{ | |||
188 | 188 | ||
189 | #define AVG_EST_WINDOW_SIZE 20 | 189 | #define AVG_EST_WINDOW_SIZE 20 |
190 | 190 | ||
191 | typedef int (*notify_rsrc_exit_t)(struct task_struct* tsk); | ||
192 | |||
191 | typedef struct avg_est{ | 193 | typedef struct avg_est{ |
192 | lt_t history[AVG_EST_WINDOW_SIZE]; | 194 | lt_t history[AVG_EST_WINDOW_SIZE]; |
193 | uint16_t count; | 195 | uint16_t count; |
@@ -248,6 +250,9 @@ struct rt_param { | |||
248 | gpu_migration_dist_t gpu_migration; | 250 | gpu_migration_dist_t gpu_migration; |
249 | int last_gpu; | 251 | int last_gpu; |
250 | 252 | ||
253 | notify_rsrc_exit_t rsrc_exit_cb; | ||
254 | void* rsrc_exit_cb_args; | ||
255 | |||
251 | lt_t accum_gpu_time; | 256 | lt_t accum_gpu_time; |
252 | lt_t gpu_time_stamp; | 257 | lt_t gpu_time_stamp; |
253 | 258 | ||