161,6 → 161,7 |
|
job_task_default_model(job, b->dline); |
job_task_def_noexc(job); |
|
level_table[ lev->scheduling_level ]-> |
private_insert(lev->scheduling_level, p, (TASK_MODEL *)&job); |
|
221,7 → 222,7 |
t3.tv_nsec = (t % 1000000) * 1000; |
|
#ifdef GRUBSTAR_DEBUG |
kern_printf("(GS:Act %d)",p); |
kern_printf("(GS:Act %d avail %d)",p, b->avail); |
#endif |
|
TRACER_LOGEVENT(FTrace_EVT_server_active,proc_table[p].context,(unsigned int)b); |
274,18 → 275,20 |
TIME tx; |
struct budget_struct *b = &lev->b[lev->tb[p]]; |
TIME t; |
struct timespec t2,t3; |
struct timespec t2,t3,t4; |
|
if (b->vtimer!=NIL) kern_event_delete(b->vtimer); |
b->vtimer=NIL; |
tx = 0; |
|
if (lev->cap_lev != NIL) { |
kern_event_delete(lev->cap_lev); |
lev->cap_lev = NIL; |
} |
|
SUBTIMESPEC(&schedule_time, &lev->cap_lasttime, &ty); |
|
tx = TIMESPEC2USEC(&ty); |
} |
|
// recalculate the new effective last reclaiming |
mul32div32to32(tx,(lev->U - lev->Uf),lev->U,b->last_reclaiming); |
433,13 → 436,16 |
/* This is the first task in the budget, |
the task have to be inserted into the master module */ |
struct timespec t; |
|
kern_gettime(&t); |
GRUBSTAR_activation(lev,p,&t); |
|
} else { |
/* The budget is not empty, another task is already into the |
master module, so the task is inserted at the end of the budget |
queue */ |
iq_insertlast(p,&lev->b[budget->b].tasks); |
kern_printf("(NP act %d cur %d, flag %d)",p, lev->b[budget->b].current, lev->b[budget->b].flags ); |
} |
|
#ifdef GRUBSTAR_DEBUG |
467,6 → 473,9 |
level_table[ lev->scheduling_level ]-> |
private_extract(lev->scheduling_level, p); |
|
iq_extract(p, &lev->b[lev->tb[p]].tasks); |
//lev->b[lev->tb[p]].current = NIL; |
|
/* check if the buffer has someone else to schedule */ |
if (iq_query_first(&lev->b[lev->tb[p]].tasks) == NIL) { |
/* the buffer has no tasks! */ |
570,10 → 579,14 |
#ifdef GRUBSTAR_DEBUG |
kern_printf("(GS:HRExt:%d)",p); |
#endif |
|
level_table[ lev->scheduling_level ]-> |
private_extract(lev->scheduling_level, p); |
|
iq_insertfirst(p, &b->tasks); |
//iq_extract(p, &b->tasks); |
|
//iq_insertfirst(p, &b->tasks); |
|
b->current = NIL; |
|
} |
668,6 → 681,7 |
lev->b[i].negotiation = 0; |
lev->b[i].loc_sched_level=-1; |
iq_init(&lev->b[i].tasks, NULL, 0); |
|
} |
|
lev->n = n; |