mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-18 01:14:38 +00:00
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.
This commit is contained in:
parent
62b5b96bcc
commit
1efddfa6bf
@ -131,6 +131,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 */
|
||||
|
@ -575,6 +575,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);
|
||||
}
|
||||
@ -614,6 +615,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…
Reference in New Issue
Block a user