Function report |
Source Code:kernel\rcu\srcutree.c |
Create Date:2022-07-28 10:18:40 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Note the end of an SRCU grace period. Initiates callback invocation* and starts a new grace period if needed.* The ->srcu_cb_mutex acquisition does not protect any data, but* instead prevents more than one grace period from starting while we
Proto:static void srcu_gp_end(struct srcu_struct *ssp)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct srcu_struct * | ssp |
| 526 | mutex_lock( & srcu_cb_mutex) |
| 530 | idx = Return the state portion of a sequence number previously returned* by rcu_seq_snap() or rcu_seq_current(). |
| 531 | WARN_ON_ONCE(idx != SRCU_STATE_SCAN2) |
| 532 | cbdelay = Return grace-period delay, zero if there are expedited grace* periods pending, SRCU_INTERVAL otherwise. |
| 536 | If ULONG_CMP_LT(srcu_gp_seq_needed_exp, gpseq) Then srcu_gp_seq_needed_exp = gpseq |
| 546 | cbs = false |
| 547 | last_lvl = snp >= level[rcu_num_lvls - 1] |
| 548 | If last_lvl Then cbs = srcu_have_cbs[idx] == gpseq |
| 550 | srcu_have_cbs[idx] = gpseq |
| 552 | If ULONG_CMP_LT(srcu_gp_seq_needed_exp, gpseq) Then srcu_gp_seq_needed_exp = gpseq |
| 554 | mask = srcu_data_have_cbs[idx] |
| 555 | srcu_data_have_cbs[idx] = 0 |
| 561 | If Not (gpseq & Overflow-check frequency. N bits roughly says every 2**N grace periods. ) && last_lvl Then When cpu <= grphi cycle |
| 563 | sdp = per_cpu_ptr(sda, cpu) |
| 565 | If ULONG_CMP_GE(gpseq, srcu_gp_seq_needed + 100) Then srcu_gp_seq_needed = gpseq |
| 568 | If ULONG_CMP_GE(gpseq, srcu_gp_seq_needed_exp + 100) Then srcu_gp_seq_needed_exp = gpseq |
| 586 | Else |
| Name | Describe |
|---|---|
| srcu_advance_state | Core SRCU state machine. Push state bits of ->srcu_gp_seq* to SRCU_STATE_SCAN2, and invoke srcu_gp_end() when scan has* completed in that state. |
| 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 |