函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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
注解内核,赢得工具下载SCCTEnglish

函数名称: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
906  sig等于信号
907  pct等于Empty if CONFIG_POSIX_TIMERS=n
916  如果非READ_ONCE(timers_active)或expiry_active则返回
923  expiry_active = true
929  proc_sample_cputime_atomic( & cputime_atomic, samples)
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等于softNSEC_PER_SEC
948  hardns等于hardNSEC_PER_SEC
951  如果hard不等于RLIM_INFINITYcheck_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)则返回
957  rlim_cur等于soft加1
958  softns加等于NSEC_PER_SEC
962  如果softns小于nextevtnextevt等于softns
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_timersThis 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.