aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-11-11 13:10:43 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-11-11 13:10:43 -0500
commitdede6a6b8ce09f48295d8ba4635480c98ef85284 (patch)
tree3bc2dcbe492d1e799076cd7060bc886b7a376219 /include/litmus
parent33cb64c787070d6b60a02ea40064d717d3b9dc07 (diff)
improve ikglp heuristics
Diffstat (limited to 'include/litmus')
-rw-r--r--include/litmus/ikglp_lock.h4
-rw-r--r--include/litmus/rt_param.h5
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
119struct ikglp_affinity_ops 120struct 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
133struct ikglp_affinity 136struct 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
191typedef int (*notify_rsrc_exit_t)(struct task_struct* tsk);
192
191typedef struct avg_est{ 193typedef 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