函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\cgroup\cpuset.c Create Date:2022-07-27 12:18:52
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:pdate_cpumasks_hier - Update effective cpumasks and tasks in the subtree*@cs: the cpuset to consider*@tmp: temp variables for calculating effective_cpus & partition setup* When congifured cpumask is changed, the effective cpumasks of this cpuset

函数原型:static void update_cpumasks_hier(struct cpuset *cs, struct tmpmasks *tmp)

返回类型:void

参数:

类型参数名称
struct cpuset *cs
struct tmpmasks *tmp
1296  bool need_rebuild_sched_domains = false
1298  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
1299  cpuset_for_each_descendant_pre - pre-order walk of a cpuset's descendants*@des_cs: loop cursor pointing to the current descendant*@pos_css: used for iteration*@root_cs: target cpuset to walk ancestor of(cp, pos_css, cs)
1300  parent等于parent_cs(cp)
1302  mpute_effective_cpumask - Compute the effective cpumask of the cpuset*@new_cpus: the temp variable for the new effective_cpus mask*@cs: the cpuset the need to recompute the new effective_cpus mask*@parent: the parent cpuset* If the parent has subpartition
1317  child_ecpus_count自减
1327  继续下一循环
1336  如果cp不等于cs partition root state
1376  如果非ss_tryget_online - try to obtain a reference on the specified css if online*@css: target css* Obtain a reference on @css if it's online则继续下一循环
1378  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
1380  spin_lock_irq( & callback_lock)
1382  pumask_copy - *dstp = *srcp*@dstp: the result*@srcp: the input cpumask
1387  否则如果 number of CPUs in subparts_cpus
1411  spin_unlock_irq( & callback_lock)
1413  WARN_ON(!Cgroup v2 behavior is used when on default hierarchy or the* cgroup_v2_mode flag is set. && !pumask_equal - *src1p == *src2p*@src1p: the first input*@src2p: the second input)
1416  pdate_tasks_cpumask - Update the cpumasks of tasks in the cpuset.*@cs: the cpuset in which each task's cpus_allowed mask needs to be changed* Iterate through each task of @cs updating its cpus_allowed to the* effective cpuset's
1424  如果非pumask_empty - *srcp == 0*@srcp: the cpumask to that all cpus < nr_cpu_ids are clear.is_sched_load_balance(cp)且非cgroup_subsys_on_dfl - fast test on whether a subsys is on default hierarchy*@ss: subsystem in question(This file *must* be included with SUBSYS() defined.)或is_partition_root(cp)的值则need_rebuild_sched_domains = true
1430  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
1431  设置一个css引用
1433  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
1435  如果need_rebuild_sched_domainsrebuild_sched_domains_locked()
调用者
名称描述
update_sibling_cpumaskspdate_sibling_cpumasks - Update siblings cpumasks*@parent: Parent cpuset*@cs: Current cpuset*@tmp: Temp variables
update_cpumaskpdate_cpumask - update the cpus_allowed mask of a cpuset and all tasks in it*@cs: the cpuset to consider*@trialcs: trial cpuset*@buf: buffer of cpu numbers written to this cpuset