Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\idle.c Create Date:2022-07-28 09:37:52
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:play_idle_precise

Proto:void play_idle_precise(u64 duration_ns, u64 latency_ns)

Type:void

Parameter:

TypeParameterName
u64duration_ns
u64latency_ns
328  WARN_ON_ONCE(policy != SCHED_FIFO)
329  WARN_ON_ONCE(nr_cpus_allowed != 1)
330  WARN_ON_ONCE(!(flags & I am a kernel thread ))
331  WARN_ON_ONCE(!(flags & Userland is not allowed to meddle with cpus_mask ))
332  WARN_ON_ONCE(!duration_ns)
334  rcu_sleep_check()
335  Even if we don't have any preemption, we need preempt disable/enable* to be barriers, so that we don't have things like get_user/put_user* that can cause faults and scheduling migrate into our preempt-protected* region.()
336  flags |= I am an IDLE thread
337  cpuidle_use_deepest_state(latency_ns)
339  done = 0
340  hrtimer_init_on_stack( & timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL)
341  function = idle_inject_timer_fn
342  hrtimer_start - (re)start an hrtimer*@timer: the timer to be added*@tim: expiry time*@mode: timer mode: absolute (HRTIMER_MODE_ABS) or* relative (HRTIMER_MODE_REL), and pinned (HRTIMER_MODE_PINNED);* softirq based mode is considered for debug purpose only!
345  When Not READ_ONCE(done) cycle
346  Generic idle loop implementation* Called with polling cleared.
348  cpuidle_use_deepest_state(0)
349  flags &= ~I am an IDLE thread
351  preempt_fold_need_resched()
352  preempt_enable()
Caller
NameDescribe
play_idle