函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\time\timer.c Create Date:2022-07-27 11:39:54
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:We can use __set_current_state() here because schedule_timeout() calls* schedule() unconditionally.

函数原型:signed long __sched schedule_timeout_interruptible(signed long timeout)

返回类型:signed long

参数:

类型参数名称
signed longtimeout
1914  set_current_state() includes a barrier so that the write of current->state* is correctly serialised wrt the caller's subsequent test of whether to* actually sleep:* for (;;) {* set_current_state(TASK_UNINTERRUPTIBLE);* if (!need_sleep)* break;* (睡眠态)
1915  返回:schedule_timeout - sleep until timeout*@timeout: timeout value in jiffies* Make the current task sleep until @timeout jiffies have* elapsed
调用者
名称描述
lock_torture_statsPeriodically prints torture statistics, if periodic statistics printing* was specified via the stat_interval module parameter.* No need to worry about fullstop here, since this one doesn't reference* volatile state or register callbacks.
srcu_read_delay
rcu_torture_boost
rcu_torture_fqsRCU torture force-quiescent-state kthread. Repeatedly induces* bursts of calls to force_quiescent_state(), increasing the probability* of occurrence of some important types of race conditions.
rcu_torture_writerRCU torture writer kthread. Repeatedly substitutes a new structure* for that pointed to by rcu_torture_current, freeing the old structure* after a series of grace periods (the "pipeline").
rcu_torture_readerRCU torture reader kthread. Repeatedly dereferences rcu_torture_current,* incrementing the corresponding element of the pipeline array. The* counter in the element should never be greater than 1, otherwise, the* RCU implementation is broken.
rcu_torture_statsPeriodically prints torture statistics, if periodic statistics printing* was specified via the stat_interval module parameter.
rcu_torture_stallCPU-stall kthread. It waits as specified by stall_cpu_holdoff, then* induces a CPU stall for the time specified by stall_cpu.
rcu_torture_fwd_prog_crCarry out call_rcu() forward-progress testing.
rcu_torture_fwd_progCarry out grace-period forward-progress testing.
rcu_torture_barrierkthread function to drive and coordinate RCU barrier testing.
rcu_perf_writerRCU perf writer kthread. Repeatedly does a grace period.
rcu_cpu_kthreadPer-CPU kernel thread that invokes RCU callbacks. This replaces* the RCU softirq used in configurations of RCU that do not support RCU* priority boosting.
msleep_interruptiblemsleep_interruptible - sleep waiting for signals*@msecs: Time in milliseconds to sleep for
watchdogkthread which checks for tasks stuck in D state
torture_shuffleShuffle tasks across CPUs, with the intent of allowing each CPU in the* system to become idle at a time and cut off its timer ticks. This is meant* to test the support for such tickless idle CPU in RCU.
stutter_waitBlock until the stutter interval ends. This must be called periodically* by all running kthreads that need to be subject to stuttering.
torture_stutterCause the torture test to "stutter", starting and stopping all* threads periodically.
kmemleak_scan_threadThread function performing automatic memory scanning. Unreferenced objects* at the end of a memory scan are reported but only the first time.
maybe_create_workermaybe_create_worker - create a new worker if necessary*@pool: pool to create a new worker for* Create a new worker for @pool if necessary