void tasklet_kill(struct tasklet *t);
void __task_wakeup(struct task *t);
void __task_queue(struct task *task, struct eb_root *wq);
+
+uint sched_report_idle();
+
unsigned int run_tasks_from_lists(unsigned int budgets[]);
/*
idle_time = samp_time = 0;
}
-/* report the average CPU idle percentage over all running threads, between 0 and 100 */
-static inline uint report_idle()
-{
- uint total = 0;
- uint rthr = 0;
- uint thr;
-
- for (thr = 0; thr < MAX_THREADS; thr++) {
- if (!(all_threads_mask & (1UL << thr)))
- continue;
- total += HA_ATOMIC_LOAD(&ha_thread_info[thr].idle_pct);
- rthr++;
- }
- return rthr ? total / rthr : 0;
-}
-
/* Collect date and time information before calling poll(). This will be used
* to count the run time of the past loop and the sleep time of the next poll.
*/
actconn, pipes_used, pipes_used+pipes_free, read_freq_ctr(&global.conn_per_sec),
bps >= 1000000000UL ? (bps / 1000000000.0) : bps >= 1000000UL ? (bps / 1000000.0) : (bps / 1000.0),
bps >= 1000000000UL ? 'G' : bps >= 1000000UL ? 'M' : 'k',
- total_run_queues(), total_allocated_tasks(), report_idle()
+ total_run_queues(), total_allocated_tasks(), sched_report_idle()
);
/* scope_txt = search query, appctx->ctx.stats.scope_len is always <= STAT_SCOPE_TXT_MAXLEN */
#endif
info[INF_TASKS] = mkf_u32(0, total_allocated_tasks());
info[INF_RUN_QUEUE] = mkf_u32(0, total_run_queues());
- info[INF_IDLE_PCT] = mkf_u32(FN_AVG, report_idle());
+ info[INF_IDLE_PCT] = mkf_u32(FN_AVG, sched_report_idle());
info[INF_NODE] = mkf_str(FO_CONFIG|FN_OUTPUT|FS_SERVICE, global.node);
if (global.desc)
info[INF_DESCRIPTION] = mkf_str(FO_CONFIG|FN_OUTPUT|FS_SERVICE, global.desc);
activity[tid].long_rq++;
}
+/* report the average CPU idle percentage over all running threads, between 0 and 100 */
+uint sched_report_idle()
+{
+ uint total = 0;
+ uint rthr = 0;
+ uint thr;
+
+ for (thr = 0; thr < MAX_THREADS; thr++) {
+ if (!(all_threads_mask & (1UL << thr)))
+ continue;
+ total += HA_ATOMIC_LOAD(&ha_thread_info[thr].idle_pct);
+ rthr++;
+ }
+ return rthr ? total / rthr : 0;
+}
+
/*
* Delete every tasks before running the master polling loop
*/