38,6 → 38,7 |
|
#include "ll/i386/64bit.h" |
#include "grubstar.h" |
#include <tracer.h> |
|
//#define GRUBSTAR_DEBUG |
|
106,7 → 107,10 |
|
b->avail += b->Q; |
if (b->avail > b->Q) b->avail = b->Q; |
|
|
/* Tracer */ |
TRACER_LOGEVENT(FTrace_EVT_server_replenish,1,(int)(b),0); |
|
if (b->flags==GRUBSTAR_RECLAIMING && b->avail>0) |
lev->Uf += b->Ub; |
|
162,6 → 166,7 |
|
if (b->current == NIL && iq_query_first(&(b->tasks)) == NIL && b->flags != GRUBSTAR_RECLAIMING) { |
event_need_reschedule(); |
TRACER_LOGEVENT(FTrace_EVT_server_reclaiming,1,(int)(b),0); |
b->flags = GRUBSTAR_RECLAIMING; |
lev->Uf -= b->Ub; |
} |
190,6 → 195,8 |
kern_printf("(GS:Act %d)",p); |
#endif |
|
TRACER_LOGEVENT(FTrace_EVT_server_active,1,(int)(b),0); |
|
if (b->vtimer!=NIL) kern_event_delete(b->vtimer); |
b->vtimer=NIL; |
|
249,7 → 256,10 |
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; |
if (b->avail <= 0) { |
TRACER_LOGEVENT(FTrace_EVT_server_exhaust,1,(int)(b),0); |
b->flags = GRUBSTAR_NOACTIVE; |
} |
|
if (TIMESPEC_A_LT_B(&b->dline, &schedule_time)) { |
/* we modify the deadline ... */ |
304,6 → 314,9 |
|
/* and the capacity */ |
b->avail = b->Q; |
|
/* Tracer */ |
TRACER_LOGEVENT(FTrace_EVT_server_replenish,1,(int)(b),0); |
|
if (b->flags == GRUBSTAR_RECLAIMING) { |
lev->Uf += b->Ub; |
513,6 → 526,7 |
b->vtimer=NIL; |
} |
|
TRACER_LOGEVENT(FTrace_EVT_server_reclaiming,1,(int)(b),0); |
b->flags = GRUBSTAR_RECLAIMING; |
lev->Uf -= b->Ub; |
|
618,7 → 632,9 |
lev->b[r].flags = GRUBSTAR_ACTIVE; |
lev->b[r].loc_sched_id = scheduler_id; |
lev->b[r].loc_sched_level = local_scheduler_level; |
lev->b[r].last_reclaiming = 0; |
lev->b[r].last_reclaiming = 0; |
|
TRACER_LOGEVENT(FTrace_EVT_server_create,3,(int)(&(lev->b[r])),r); |
|
return r; |
} |
651,6 → 667,8 |
lev->b[budget].flags = GRUBSTAR_ACTIVE; |
lev->b[budget].last_reclaiming = 0; |
|
TRACER_LOGEVENT(FTrace_EVT_server_remove,3,(int)(&(lev->b[budget])),budget); |
|
return 0; |
|
} |