305,8 → 305,10 |
|
/* ...and finally, we have to post a capacity event on exec task because the shadow_task consume |
* * capacity on exe task always */ |
ADDUSEC2TIMESPEC(proc_table[exec].avail_time ,&ty); |
lev->cap_lev = kern_event_post(&ty,capacity_handler, lev); |
if (proc_table[exec].avail_time > 0) { |
ADDUSEC2TIMESPEC(proc_table[exec].avail_time ,&ty); |
lev->cap_lev = kern_event_post(&ty,capacity_handler, lev); |
} |
level_table[lev->scheduling_level]->private_dispatch(lev->scheduling_level, p, nostop); |
} |
else |
333,7 → 335,7 |
EDFSTAR_account_capacity(lev,exec); |
|
/* check if the wcet is finished... */ |
if (proc_table[exec].avail_time <= 0) { |
if (proc_table[exec].avail_time < 0) { |
/* wcet finished: disable wcet event and count wcet miss */ |
|
#ifdef EDFSTAR_DEBUG |
341,7 → 343,8 |
#endif |
//proc_table[p].control &= ~CONTROL_CAP; |
lev->wcet_miss[exec]++; |
TRACER_LOGEVENT(FTrace_EVT_task_wcet_violation,proc_table[p].context,proc_table[p].task_level); |
proc_table[exec].avail_time = 0; |
TRACER_LOGEVENT(FTrace_EVT_task_wcet_violation,proc_table[exec].context,proc_table[exec].task_level); |
} |
|
#ifdef EDFSTAR_DEBUG |