函数逻辑报告 |
Source Code:kernel\time\posix-cpu-timers.c |
Create Date:2022-07-27 11:47:59 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Check for any per-thread CPU timers that have fired and move them* off the tsk->*_timers list onto the firing list. Per-thread timers* have already been taken off.
函数原型:static void check_process_timers(struct task_struct *tsk, struct list_head *firing)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct task_struct * | tsk | |
struct list_head * | firing |
916 | 如果非READ_ONCE(timers_active)或expiry_active则返回 |
923 | expiry_active = true |
930 | collect_posix_cputimers(pct, samples, firing) |
935 | check_cpu_itimer(tsk, & it[CPUCLOCK_PROF], & nextevt, samples[CPUCLOCK_PROF], SIGPROF) |
938 | check_cpu_itimer(tsk, & it[CPUCLOCK_VIRT], & nextevt, samples[CPUCLOCK_VIRT], SIGVTALRM) |
942 | soft等于task_rlimit(tsk, RLIMIT_CPU) |
943 | 如果soft不等于RLIM_INFINITY则 |
945 | hard等于task_rlimit_max(tsk, RLIMIT_CPU) |
946 | ptime等于samples[CPUCLOCK_PROF] |
947 | softns等于soft乘NSEC_PER_SEC |
948 | hardns等于hard乘NSEC_PER_SEC |
951 | 如果hard不等于RLIM_INFINITY且check_rlimit(ptime, hardns, SIGKILL, TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., true)则返回 |
958 | softns加等于NSEC_PER_SEC |
966 | 如果Check whether all cache entries contain U64_MAX, i.e. eternal expiry time 则stop_process_timers(sig) |
969 | expiry_active = false |
名称 | 描述 |
---|---|
run_posix_cpu_timers | This is called from the timer interrupt handler. The irq handler has* already updated our counts. We need to check if any timers fire now.* Interrupts are disabled. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |