cpu的排程域初始化方法

2022-09-23 23:00:32 字數 1043 閱讀 9901

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...