函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |