| Function report | 
| Source Code: arch\x86\kernel\apm_32.c | Create Date:2022-07-28 08:22:13 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:apm_cpu_idle
Proto:static int apm_cpu_idle(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct cpuidle_device * | dev | |
| struct cpuidle_driver * | drv | |
| int | index | 
| 908 | apm_idle_done = 0 | 
| 912 | recalc : | 
| 913 | task_cputime(current process, & utime, & stime) | 
| 915 | use_apm_idle = 0 | 
| 916 | Else if jiffies_since_last_check > idle_period Then | 
| 919 | idle_percentage = nsecs_to_jiffies(stime - last_stime) | 
| 920 | idle_percentage *= 100 | 
| 923 | If forbid_idle Then use_apm_idle = 0 | 
| 927 | last_jiffies = jiffies | 
| 928 | last_stime = stime | 
| 930 | bucket = IDLE_LEAKY_MAX | 
| 932 | When Not need_resched() cycle | 
| 933 | If use_apm_idle Then | 
| 939 | apm_idle_done = 1 | 
| 941 | If bucket Then | 
| 942 | bucket = IDLE_LEAKY_MAX | 
| 943 | Continue | 
| 945 | Else if bucket Then | 
| 946 | bucket-- | 
| 947 | Continue | 
| 949 | Break | 
| 951 | apm_idle_done = 1 | 
| 952 | Break | 
| 953 | Default | 
| 954 | Break | 
| 958 | local_irq_disable() | 
| 960 | If jiffies_since_last_check > idle_period Then Go to recalc | 
| 964 | If apm_idle_done Then apm_do_busy - inform the BIOS the CPU is busy* Request that the BIOS brings the CPU back to full performance. | 
| 967 | Return index | 
| 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 |