MINOR: sched: store the current profile entry in the thread context
The profile entry that corresponds to the current task/tasklet being profiled is now stored into the thread's context. This will allow it to be accessed from the tasks themselves. This is needed for an upcoming fix. (cherry picked from commit 1efddfa6bfdcaf57198866db67e49b40442d278f) Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
This commit is contained in:
parent
1cb273c718
commit
397fcc008d
@ -100,6 +100,7 @@ struct thread_ctx {
|
||||
|
||||
uint32_t sched_wake_date; /* current task/tasklet's wake date or 0 */
|
||||
uint32_t sched_call_date; /* current task/tasklet's call date (valid if sched_wake_date > 0) */
|
||||
struct sched_activity *sched_profile_entry; /* profile entry in use by the current task/tasklet, only if sched_wake_date>0 */
|
||||
|
||||
uint64_t prev_cpu_time; /* previous per thread CPU time */
|
||||
uint64_t prev_mono_time; /* previous system wide monotonic time */
|
||||
|
@ -606,6 +606,7 @@ unsigned int run_tasks_from_lists(unsigned int budgets[])
|
||||
((struct tasklet *)t)->wake_date = 0;
|
||||
th_ctx->sched_call_date = now_ns;
|
||||
profile_entry = sched_activity_entry(sched_activity, t->process);
|
||||
th_ctx->sched_profile_entry = profile_entry;
|
||||
HA_ATOMIC_ADD(&profile_entry->lat_time, lat);
|
||||
HA_ATOMIC_INC(&profile_entry->calls);
|
||||
}
|
||||
@ -645,6 +646,7 @@ unsigned int run_tasks_from_lists(unsigned int budgets[])
|
||||
t->wake_date = 0;
|
||||
th_ctx->sched_call_date = now_ns;
|
||||
profile_entry = sched_activity_entry(sched_activity, t->process);
|
||||
th_ctx->sched_profile_entry = profile_entry;
|
||||
HA_ATOMIC_ADD(&profile_entry->lat_time, lat);
|
||||
HA_ATOMIC_INC(&profile_entry->calls);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user