內核調度【六】【數據結構】

1、struct util_est

/**

 * struct util_est - Estimation(估算) utilization of FAIR tasks

 * @enqueued: instantaneous(瞬時) estimated utilization of a task/cpu

 * @ewma:     the Exponential(指數) Weighted Moving Average (EWMA)

 *            utilization of a task

 *

 * Support data structure to track an Exponential Weighted Moving Average

 * (EWMA) of a FAIR task's utilization. New samples are added to the moving

 * average each time a task completes an activation(激活). Sample's weight is chosen

 * so that the EWMA will be relatively insensitive(不敏感) to transient(瞬時) changes to the

 * task's workload.

 *

 * The enqueued attribute has a slightly different meaning for tasks and cpus:

 * - task:   the task's util_avg at last task dequeue time

 * - cfs_rq: the sum of util_est.enqueued for each RUNNABLE task on that CPU

 * Thus, the util_est.enqueued of a task represents the contribution on the

 * estimated utilization of the CPU where that task is currently enqueued.

 *

 * Only for tasks we track a moving average of the past(過去的) instantaneous

 * estimated utilization. This allows to absorb(吸收) sporadic(零星) drops in utilization

 * of an otherwise almost periodic task.

 */

struct util_est {

    unsigned int            enqueued;入隊列時估算的task的效力

    unsigned int            ewma;指數加權動態的平均task的效力

#define UTIL_EST_WEIGHT_SHIFT       2

} __attribute__((__aligned__(sizeof(u64))));

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章