Function report |
Source Code:kernel\sched\idle.c |
Create Date:2022-07-28 09:37:48 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:puidle_idle_call - the main idle function* NOTE: no locks or semaphores should be used here* On archs that support TIF_POLLING_NRFLAG, is called with polling* set, and it returns with polling set. If it ever stops polling, it* must clear the polling bit.
Proto:static void cpuidle_idle_call(void)
Type:void
Parameter:Nothing
| 131 | dev = cpuidle_get_device() |
| 132 | drv = cpuidle_get_cpu_driver(dev) |
| 139 | If need_resched() Then |
| 150 | If cpuidle_not_available(drv, dev) Then |
| 151 | tick_nohz_idle_stop_tick() |
| 154 | default_idle_call - Default CPU idle routine.* To use when the cpuidle framework cannot be used. |
| 155 | Go to exit_idle |
| 168 | If idle_should_enter_s2idle() || forced_idle_latency_limit_ns Then |
| 171 | If idle_should_enter_s2idle() Then |
| 174 | entered_state = cpuidle_enter_s2idle(drv, dev) |
| 175 | If entered_state > 0 Then |
| 177 | Go to exit_idle |
| 182 | max_latency_ns = U64_MAX |
| 183 | Else |
| 187 | tick_nohz_idle_stop_tick() |
| 191 | call_cpuidle(drv, dev, next_state) |
| 192 | Else |
| 193 | bool stop_tick = true |
| 198 | next_state = cpuidle_select(drv, dev, & stop_tick) |
| 200 | If stop_tick || tick_nohz_tick_stopped() Then tick_nohz_idle_stop_tick() |
| 202 | Else tick_nohz_idle_retain_tick() |
| 207 | entered_state = call_cpuidle(drv, dev, next_state) |
| 211 | cpuidle_reflect(dev, entered_state) |
| 214 | exit_idle : |
| Name | Describe |
|---|---|
| do_idle | Generic idle loop implementation* Called with polling cleared. |
| 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 |