函数逻辑报告 | 
Source Code:kernel\rcu\srcutree.c | 
Create Date:2022-07-27 11:19:01 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称: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
函数原型:static void srcu_gp_end(struct srcu_struct *ssp)
返回类型:void
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| 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. | 
| 546 | cbs = false | 
| 547 | last_lvl等于snp大于等于level[rcu_num_lvls - 1] | 
| 548 | 如果last_lvl则cbs等于srcu_have_cbs[idx]恒等于gpseq | 
| 550 | srcu_have_cbs[idx]等于gpseq | 
| 554 | mask等于srcu_data_have_cbs[idx] | 
| 555 | srcu_data_have_cbs[idx]等于0 | 
| 561 | 如果非gpseq按位与Overflow-check frequency. N bits roughly says every 2**N grace periods. 的值且last_lvl则以cpu小于等于grphi循环 | 
| 563 | sdp等于per_cpu_ptr(sda, cpu) | 
| 565 | 如果ULONG_CMP_GE(gpseq, srcu_gp_seq_needed + 100)则srcu_gp_seq_needed等于gpseq | 
| 568 | 如果ULONG_CMP_GE(gpseq, srcu_gp_seq_needed_exp + 100)则srcu_gp_seq_needed_exp等于gpseq | 
| 586 | 否则 | 
| 名称 | 描述 | 
|---|---|
| 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. | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |