240,7 → 240,7 |
b->avail -= tx - b->last_reclaiming; |
|
#ifdef GRUBSTAR_DEBUG |
kern_printf("(GS:Cap p%d av=%d Uf=%u U=%u, tx=%d)", p, b->avail, lev->Uf, lev->U,(int)tx); |
kern_printf("(GS:Cap p%d av=%d tx=%d rec=%d)", p, b->avail,(int)tx,b->last_reclaiming); |
#endif |
|
if (b->avail <= 0) b->flags = GRUBSTAR_NOACTIVE; |
501,8 → 501,15 |
#endif |
|
if (b->current == NIL && iq_query_first(&(b->tasks)) == NIL && b->flags != GRUBSTAR_RECLAIMING) { |
|
if (b->vtimer!=NIL) { |
kern_event_delete(b->vtimer); |
b->vtimer=NIL; |
} |
|
b->flags = GRUBSTAR_RECLAIMING; |
lev->Uf -= b->Ub; |
|
} |
|
break; |
626,6 → 633,7 |
b = (MAX_BANDWIDTH / lev->b[budget].T) * lev->b[budget].Q; |
|
lev->U -= b; |
lev->Uf -= b; |
|
lev->b[budget].Q = 0; |
lev->b[budget].T = 0; |
650,12 → 658,14 |
b = (MAX_BANDWIDTH / lev->b[budget].T) * lev->b[budget].Q; |
|
lev->U -= b; |
lev->Uf -= b; |
|
lev->b[budget].Q = Q; |
lev->b[budget].T = T; |
lev->b[budget].Ub = (MAX_BANDWIDTH / T) * Q; |
lev->b[budget].avail = Q; |
|
lev->U += lev->b[budget].Ub; |
lev->Uf += lev->b[budget].Ub; |
|
return 0; |
|