Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 277 → Rev 276

/shark/trunk/ports/first/modules/grubstar.c
44,7 → 44,6
struct budget_struct {
TIME Q; /* budget */
TIME T; /* period */
bandwidth_t Ub; /* bandwidth */
 
struct timespec dline; /* deadline */
int dline_timer; /* oslib event for budget reactivation*/
106,8 → 105,11
if (b->avail > b->Q) b->avail = b->Q;
if (b->flags==GRUBSTAR_RECLAIMING && b->avail>0) {
lev->Uf += b->Ub;
bandwidth_t bw;
bw = (MAX_BANDWIDTH / b->T) * b->Q;
 
lev->Uf += bw;
 
#ifdef GRUBSTAR_DEBUG
kern_printf("BW=%ld, U=%u, Uf=%u",(long)bw, lev->U, lev->Uf);
#endif
164,13 → 166,19
 
b->vtimer = NIL;
if (b->current == NIL && iq_query_first(&(b->tasks)) == NIL && b->flags != GRUBSTAR_RECLAIMING) {
b->flags = GRUBSTAR_RECLAIMING;
lev->Uf -= b->Ub;
bandwidth_t bw;
 
b->flags=GRUBSTAR_RECLAIMING;
 
bw = (MAX_BANDWIDTH / b->T) * b->Q;
 
lev->Uf -= bw;
#ifdef GRUBSTAR_DEBUG
kern_printf("bw=%ld, U=%u, Uf=%u",(long)bw, lev->U, lev->Uf);
#endif
 
}
 
#ifdef GRUBSTAR_DEBUG
206,7 → 214,11
}
 
if (b->flags==GRUBSTAR_RECLAIMING) {
lev->Uf += b->Ub;
bandwidth_t bw;
bw = (MAX_BANDWIDTH / b->T) * b->Q;
 
lev->Uf += bw;
#ifdef grubSTAR_DEBUG
kern_printf("BW=%ld, U=%u, Uf=%u",(long)bw, lev->U, lev->Uf);
328,7 → 340,11
b->avail = b->Q;
 
if (b->flags == GRUBSTAR_RECLAIMING) {
lev->Uf += b->Ub;
bandwidth_t bw;
 
bw = (MAX_BANDWIDTH / b->T) * b->Q;
lev->Uf += bw;
 
}
 
b->flags = GRUBSTAR_ACTIVE;
515,8 → 531,14
case (long)(NULL):
 
if (b->current == NIL && iq_query_first(&(b->tasks)) == NIL && b->flags != GRUBSTAR_RECLAIMING) {
bandwidth_t bw;
b->flags = GRUBSTAR_RECLAIMING;
lev->Uf -= b->Ub;
bw = (MAX_BANDWIDTH / b->T) * b->Q;
lev->Uf -= bw;
 
}
 
break;
561,7 → 583,6
for (i=0; i<n; i++) {
lev->b[i].Q = 0;
lev->b[i].T = 0;
lev->b[i].Ub = 0;
NULL_TIMESPEC(&lev->b[i].dline);
lev->b[i].dline_timer = NIL;
lev->b[i].vtimer=NIL;
613,7 → 634,6
lev->b[r].Q = Q;
lev->b[r].T = T;
lev->b[r].Ub = b;
lev->b[r].avail = Q;
lev->b[r].flags = GRUBSTAR_ACTIVE;
lev->b[r].loc_sched_id = scheduler_id;
642,13 → 662,11
 
lev->b[budget].Q = 0;
lev->b[budget].T = 0;
lev->b[budget].Ub = 0;
NULL_TIMESPEC(&lev->b[budget].dline);
lev->b[budget].dline_timer = NIL;
lev->b[budget].avail = 0;
lev->b[budget].current = -1;
lev->b[budget].flags = GRUBSTAR_ACTIVE;
lev->b[budget].last_reclaiming = 0;
 
return 0;
 
661,7 → 679,6
 
lev->b[budget].Q = Q;
lev->b[budget].T = T;
lev->b[budget].Ub = (MAX_BANDWIDTH / T) * Q;
 
return 0;