Function report |
Source Code:kernel\rcu\tree.c |
Create Date:2022-07-28 10:27:24 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Helper function for rcu_init() that initializes the rcu_state structure.
Proto:static void __init rcu_init_one(void)
Type:void
Parameter:Nothing
| 3379 | buf[] = RCU_NODE_NAME_INIT |
| 3380 | fqs[] = RCU_FQS_NAME_INIT |
| 3385 | cpustride = 1 |
| 3390 | BUILD_BUG_ON - break compile if a condition is true(RCU_NUM_LVLS > ARRAY_SIZE - get the number of elements in array @arr*@arr: array to be sized(buf)) |
| 3393 | If rcu_num_lvls <= 0 || rcu_num_lvls > RCU_NUM_LVLS Then panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
| 3398 | When i < rcu_num_lvls cycle level[i] = level[i - 1] + Number of rcu_nodes at specified level. [i - 1] |
| 3406 | cpustride *= levelspread[i] |
| 3408 | When j < Number of rcu_nodes at specified level. [i] cycle |
| 3409 | raw_spin_lock_init( & ACCESS_PRIVATE(rnp, lock)) |
| 3410 | lockdep_set_class_and_name( & ACCESS_PRIVATE(rnp, lock), & rcu_node_class[i], buf[i]) |
| 3412 | raw_spin_lock_init( & fqslock) |
| 3413 | lockdep_set_class_and_name( & fqslock, & rcu_fqs_class[i], fqs[i]) |
| 3419 | qsmaskinit = 0 |
| 3420 | lowest-numbered CPU or group here. = j * cpustride |
| 3421 | highest-numbered CPU or group here. = (j + 1) * cpustride - 1 |
| 3422 | If highest-numbered CPU or group here. >= nr_cpu_ids Then highest-numbered CPU or group here. = nr_cpu_ids - 1 |
| 3424 | If i == 0 Then |
| 3425 | CPU/group number for next level up. = 0 |
| 3426 | Mask to apply to parent qsmask. = 0 |
| 3427 | cu_node tree? = NULL |
| 3428 | Else |
| 3429 | CPU/group number for next level up. = j % levelspread[i - 1] |
| 3431 | cu_node tree? = level[i - 1] + j / levelspread[i - 1] |
| 3434 | is at level 0. = i |
| 3436 | rcu_init_one_nocb(rnp) |
| 3437 | init_waitqueue_head( & exp_wq[0]) |
| 3438 | init_waitqueue_head( & exp_wq[1]) |
| 3439 | init_waitqueue_head( & exp_wq[2]) |
| 3440 | init_waitqueue_head( & exp_wq[3]) |
| 3441 | Process spin lock initialization( & exp_lock) |
| 3445 | init_swait_queue_head( & Where GP task waits. ) |
| 3446 | init_swait_queue_head( & Wait for check-ins. ) |
| 3448 | for_each_possible_cpu(i) |
| Name | Describe |
|---|---|
| rcu_init |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |