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 |