Function report |
Source Code:kernel\rcu\tree.c |
Create Date:2022-07-28 10:26:08 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Initialize a new grace period. Return false if no grace period required.
Proto:static bool rcu_gp_init(void)
Type:bool
Parameter:Nothing
1474 | WRITE_ONCE(Time of last GP kthread , jiffies) |
1476 | If Not READ_ONCE(Commands for GP task. ) Then |
1479 | Return false |
1481 | WRITE_ONCE(Commands for GP task. , 0) |
1489 | Return false |
1507 | raw_spin_lock( & ofl_lock) |
1509 | If qsmaskinit == ginning of each grace period. && Not Necessary to wait for blocked tasks to Then |
1518 | oldmask = qsmaskinit |
1522 | If Not oldmask != Not qsmaskinit Then |
1523 | If Not oldmask Then |
1524 | If Not Necessary to wait for blocked tasks to Then rcu_init_new_rnp(rnp) |
1526 | Else if rcu_preempt_has_tasks(rnp) Then |
1527 | Necessary to wait for blocked tasks to = true |
1528 | Else |
1529 | rcu_cleanup_dead_rnp(rnp) |
1541 | If Necessary to wait for blocked tasks to && ( Not rcu_preempt_has_tasks(rnp) || qsmaskinit) Then |
1543 | Necessary to wait for blocked tasks to = false |
1544 | If Not qsmaskinit Then rcu_cleanup_dead_rnp(rnp) |
1549 | raw_spin_unlock( & ofl_lock) |
1567 | rcu_gp_slow(gp_init_delay) |
1569 | rdp = this_cpu_ptr( & rcu_data) |
1582 | If (mask || Necessary to wait for blocked tasks to ) && Is this rcu_node a leaf? (rnp) Then Similar to rcu_report_qs_rdp(), for which it is a helper function |
1584 | Else raw_spin_unlock_irq_rcu_node(rnp) |
1587 | WRITE_ONCE(Time of last GP kthread , jiffies) |
1590 | Return true |
Name | Describe |
---|---|
rcu_gp_kthread | Body of kthread that handles grace periods. |
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 |