Function report |
Source Code:block\blk-iocost.c |
Create Date:2022-07-28 17:47:57 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:iocg_kick_waitq
Proto:static void iocg_kick_waitq(struct ioc_gq *iocg, struct ioc_now *now)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct ioc_gq * | iocg | |
| struct ioc_now * | now |
| 1145 | struct iocg_wake_ctx ctx = {iocg = iocg} |
| 1146 | margin_ns = period_us * WAITQ_TIMER_MARGIN_PCT / 100 * NSEC_PER_USEC |
| 1152 | lockdep_assert_held( & lock) |
| 1154 | current_hweight(iocg, NULL, & hw_inuse) |
| 1158 | abs_vdebt = atomic64_read( & abs_vdebt) |
| 1159 | vdebt = Scale @abs_cost to the inverse of @hw_inuse. The lower the hierarchical* weight, the more expensive each IO. Must round up. |
| 1161 | delta = min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(u64, vbudget, vdebt) |
| 1162 | abs_delta = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value(The inverse of abs_cost_to_cost(). Must round up., abs_vdebt) |
| 1166 | atomic64_add(delta, & done_vtime) |
| 1167 | atomic64_sub(abs_delta, & abs_vdebt) |
| 1168 | If WARN_ON_ONCE(atomic64_read( & abs_vdebt) < 0) Then atomic64_set( & abs_vdebt, 0) |
| 1181 | If WARN_ON_ONCE(vbudget >= 0) Then Return |
| 1186 | expires = now_ns + DIV64_U64_ROUND_UP(vshortage, vrate) * NSEC_PER_USEC |
| Name | Describe |
|---|---|
| iocg_waitq_timer_fn | |
| ioc_timer_fn | |
| ioc_rqos_throttle |
| 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 |