cpu的排程域初始化方法。
cpu的排程域可以分為下面3類。目前arm都是用的mc
static struct sched_domain_topology_level default_topology = ,
#endif
#ifdef config_sched_mc
,#endif
, ,};static struct sched_domain_topology_level *sched_domain_topology =
default_topology;
在下面的函式中都cpu的域進行初始化
可以看到域的初始化分為4部分
static int
build_sched_domains(const struct cpumask *cpu_map, struct sched_domain_attr *attr)
} /* build the groups for the domains */
#為每個cpu 設定group
for_each_cpu(i, cpu_map) else
} }#從上面可知每個cpu都有乙個domain->groups
/* calculate cpu capacity for physical packages and nodes */
for (i = nr_cpumask_bits-1; i >= 0; i--)
}#下面為麼個rq attach domain
/* attach the domains */
rcu_read_lock();
for_each_cpu(i, cpu_map)
rcu_read_unlock();
#用於debug是顯示cpu的最大的capacity
if (rq && sched_debug_enabled)
ret = 0;
error:
__free_domain_allocs(&d, alloc_state, cpu_map);
return ret;
}
初始化方法
initialize和load的區別在於 load是只要類所在檔案被引用就會被呼叫,而initialize是在類或者其子類的第乙個方法被呼叫前呼叫。所以如果類沒有被引用進專案,就不會有load呼叫 但即使類檔案被引用進來,但是沒有使用,那麼initialize也不會被呼叫。它們的相同點在於 方法只會...
java資料域初始化
1 在宣告中賦值 created by n3verl4nd on 2016 11 19.class test public class helloworld 2 在構造器中設定值 created by n3verl4nd on 2016 11 19.class test public void sh...
變數的作用域,初始化
變數的作用域 1.類的成員變數 作用於整個類 靜態變數 位於方法區,被所有例項共享,生命週期與類相同,可通過類名訪問,也可通過引用變數來訪問 例項變數 位於堆中,他的生命週期取決於例項的生命週期 2.區域性變數 位於棧中,作用於方法內部,生命週期取決於所屬的方法何時被呼叫與銷毀 區域性變數不能被st...