このページを編集する際は、編集に関する方針に従ってください。

概要

  • kernel/sched.cにて定義
  • 移動元(ソース)の負荷値を計算する
    • 移動元のCPUの負荷値を小さく見積もって、控えめにバランスを取るようにする
    • 移動元の負荷値が低く、移動先の負荷値が高ければ、バランスを取ることを控えることができる

引数

  • cpu--移動元(ソース)のCPU識別子

実装

/*

* Return a low guess at the load of a migration-source cpu.
*
* We want to under-estimate the load of migration sources, to
* balance conservatively.
*/

static inline unsigned long source_load(int cpu) {

	runqueue_t *rq = cpu_rq(cpu);
  • cpuのアクティブなランキューを取得する
	unsigned long load_now = rq->nr_running * SCHED_LOAD_SCALE;
  • load_now=rq->nr_running * 128
    • SCHED_LOAD_SCALEは128で定義されている
    • rq->nr_runningはrqランキューで実行可能状態のタスクの数である
  • rqの妥当な負荷値を算出する
	return min(rq->cpu_load, load_now);
  • rq->cpu_loadとload_nowのうち、小さいほうを返す

}

呼出元


履歴

  • 作者:ひら
  • 日付:2005/2/28
  • 対象:2.6.10
    更新日更新者更新内容

コメント

  • "妥当なロード値"という表現は適当かどうか? -- ひら 2005-02-28 (月) 08:37:44


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 07:18:46 (3129d)