Lines Matching defs:dim

168 net_dim_on_top(struct net_dim *dim)
170 switch (dim->tune_state) {
175 return (dim->steps_left > 1) && (dim->steps_right == 1);
177 return (dim->steps_right > 1) && (dim->steps_left == 1);
182 net_dim_turn(struct net_dim *dim)
184 switch (dim->tune_state) {
189 dim->tune_state = NET_DIM_GOING_LEFT;
190 dim->steps_left = 0;
193 dim->tune_state = NET_DIM_GOING_RIGHT;
194 dim->steps_right = 0;
200 net_dim_step(struct net_dim *dim)
202 if (dim->tired == (NET_DIM_PARAMS_NUM_PROFILES * 2))
205 switch (dim->tune_state) {
210 if (dim->profile_ix == (NET_DIM_PARAMS_NUM_PROFILES - 1))
212 dim->profile_ix++;
213 dim->steps_right++;
216 if (dim->profile_ix == 0)
218 dim->profile_ix--;
219 dim->steps_left++;
223 dim->tired++;
228 net_dim_park_on_top(struct net_dim *dim)
230 dim->steps_right = 0;
231 dim->steps_left = 0;
232 dim->tired = 0;
233 dim->tune_state = NET_DIM_PARKING_ON_TOP;
237 net_dim_park_tired(struct net_dim *dim)
239 dim->steps_right = 0;
240 dim->steps_left = 0;
241 dim->tune_state = NET_DIM_PARKING_TIRED;
245 net_dim_exit_parking(struct net_dim *dim)
247 dim->tune_state = dim->profile_ix ? NET_DIM_GOING_LEFT :
249 net_dim_step(dim);
288 struct net_dim *dim)
290 int prev_state = dim->tune_state;
291 int prev_ix = dim->profile_ix;
295 switch (dim->tune_state) {
297 stats_res = net_dim_stats_compare(curr_stats, &dim->prev_stats);
299 net_dim_exit_parking(dim);
303 dim->tired--;
304 if (!dim->tired)
305 net_dim_exit_parking(dim);
310 stats_res = net_dim_stats_compare(curr_stats, &dim->prev_stats);
312 net_dim_turn(dim);
314 if (net_dim_on_top(dim)) {
315 net_dim_park_on_top(dim);
318 step_res = net_dim_step(dim);
321 net_dim_park_on_top(dim);
324 net_dim_park_tired(dim);
332 (dim->tune_state != NET_DIM_PARKING_ON_TOP))
333 dim->prev_stats = *curr_stats;
335 return dim->profile_ix != prev_ix;
374 net_dim(struct net_dim *dim,
381 dim->event_ctr++;
383 switch (dim->state) {
386 dim->event_ctr,
387 dim->start_sample.event_ctr);
390 net_dim_sample(dim->event_ctr, packets, bytes, &end_sample);
391 net_dim_calc_stats(&dim->start_sample, &end_sample,
393 if (net_dim_decision(&curr_stats, dim)) {
394 dim->state = NET_DIM_APPLY_NEW_PROFILE;
395 schedule_work(&dim->work);
400 net_dim_sample(dim->event_ctr, packets, bytes, &dim->start_sample);
401 dim->state = NET_DIM_MEASURE_IN_PROGRESS;